classes文件夾存放編譯以後的字節碼文件,libs目錄下存放打包的jar文件,reports的文件夾下存放着本次打包的測試報告,resources文件夾下存放的內容與src/main/resources文件夾內容相同,
repositories {
mavenCentral()
}
添加依賴jar包java
dependencies {
compile group: 'commons-collections', name: 'commons-collections',version: '3.2'
testCompile group: 'junit', name: 'junit', version: '4.+'
}
compile group表明編譯期依賴該jar包,testCompile group 表明測試時期依賴的jar,對比maven的配置應爲web
![](http://static.javashuo.com/static/loading.gif)
能夠看出gradle的配置更爲簡潔api
個性化配置構建參數
java plugin爲你項目默認生成了許多相關的配置參數,在一般狀況下這些參數的默認值都能知足你的需求,若是不能知足你的需求的話這些配置參數也能夠被很容易的被修改
sourceCompatibility=1.7設置項目Java版本的兼容性爲1.7
version=‘1.0’設置項目的版本號爲1.0
jar {
manifest {
attributes 'Implementation-Title':'Gradle Quickstart','Implementation-Version': version
}
}
爲jar包的manifest文件添加屬性
你可使用
gradle properties來列出當前項目的配置參數信息以及它們的值
發佈jar包
uploadArchives {
repositories {
flatDir {
dirs 'repos'
}
}
}
運行
gradle uploadArchives以後會在當前目錄下生產一個名爲repos的目錄裏面有對應的jar包信息,能夠經過修改dirs的方式將jar包發送到中央倉庫
建立一個Eclipse項目
若是須要將你的項目導入到Eclipse中去,須要在build.gradle文件中加入以下配置
apply plugin:'eclipse'
而後運行gradle eclipse命令便可爲你的項目生成相關的Eclipse文件
多Java工程構建
在Gradle安裝目錄的/samples/java/multiproject文件夾中有一個多工程的構建例子
api工程經過生成一個jar文件爲客戶端提供XML webservice服務,webservice工程是一個會返回XML格式的web工程,shared工程的代碼即要被api工程調用同時webservice工程也會調用,屬於一個共享服務性工程。
要構建一個多項目的Gradle工程,首先須要建立一個settings文件,這個settings文件須要跟全部Java項目位於同一級目錄(如上圖所示),在這個settings文件裏你須要指定要構建哪些項目。這個settings文件的名字必需要
叫作settings.gradle.
settings文件內容
include "shared","api","service:webservice","service:shared"
在多數的多工程項目中,常常會出現一些工程之間共享的配置,在multiproject的例子裏,把相同的配置定義在根工程(
root project 相似於Maven的父工程概念)中,利用一種叫作配置注入(
configuration injection)
在Gradle的理念裏,根工程就至關因而一個容器,子工程就像這個容器中的一個個能夠遍歷的子元素,在這個「容器」下的項目被注入指定的配置。利用這種方式咱們能夠輕鬆的爲全部的項目引入共同須要的依賴jar包。
這種方式與maven parent project的概念大致一致。
在multiproject這個sample中咱們能夠看到相應的配置注入的定義信息
subprojects { //定義全部子工程共同須要的配置
apply plugin: "java" //定義全部子工程使用java插件
apply plugin: "eclipse-wtp" //定義全部子工程使用Eclipse插件
repositories { //定義全部子工程的中央倉庫
mavenCentral()
}
dependencies { //定義全部子工程共同的依賴
testCompile "junit:junit:4.11"
}
version = "1.0" //定義全部子工程的版本信息
jar { //添加全部子工程打jar包時manifest文件的屬性
manifest.attributes provider: "gradle"
}
}
在這裏值得注意的是個人全部子工程都被「注入」了apply plugin: "java"的配置,這就意味着全部java plugin中的task,properties屬性在每一個子工程中都有
因此你能夠在根工程目錄下運行
gradle build命令來對全部子工程進行編譯,測試,打包操做。
項目之間的相互依賴
在多項目工程的構建中,常常會存在一些項目之間依賴的狀況,好比multiproject這個sample中api project就依賴了shared project。若是項目之間存在這個依賴關係,那麼只需在相應的gradle.build文件中配置
以下一句便可
api/build.gradle
dependencies {
compile project(":shared")
}