Gradle教程
Gradle是一種構(gòu)建工具娇未,它拋棄了基于XML的構(gòu)建腳本休里,取而代之的是采用一種基于Groovy的內(nèi)部領(lǐng)域特定語言
Gradle安裝
- 安裝JDK
gradle基于Groovy語言開發(fā),在安裝包中集成了Groovy庫 - 下載
- 安裝
對源文件進(jìn)行解壓,將其添加到環(huán)境變量中
- GRADLE_HOME "安裝路徑"
- PATH 增加"%GRADLE_HOME%\bin"
- 驗證
執(zhí)行g(shù)radle -v即可
Gradle配置
可以通過配置文件對Gradle構(gòu)建進(jìn)行配置
- Gradle構(gòu)建腳本(build.gradle)
指定了一個項目和它的任務(wù) -
Gradle屬性文件(gradle.properties)
用來配置構(gòu)建屬性 -
Gradle設(shè)置文件(gradle.settings)
對于只有一個項目的構(gòu)建而言是可選的鸳慈,如果我們的構(gòu)建中包含多于一個項目攘滩,那么它就是必須的,因為它描述了哪一個項目參與構(gòu)建窟她。每一個多項目的構(gòu)建都必須在項目結(jié)構(gòu)的根目錄中加入一個設(shè)置文件
Gradle構(gòu)建基礎(chǔ)
Gradle由兩個基本概念:Project和Task
- Project
構(gòu)建產(chǎn)物(比如Jar包)或?qū)嵤┊a(chǎn)物(將應(yīng)用程序部署到生產(chǎn)環(huán)境)陈症,Project由一些組件組成,如一個Project可以代表一個JAR庫或者一個WEB應(yīng)用程序震糖,也可能包含其他項目生成的JAR包 - Task
不可分的最小工作單元录肯,執(zhí)行構(gòu)建工作(比如編譯項目或執(zhí)行測試),Task可以是編譯一些Java類吊说,或者創(chuàng)建一個JAR包论咏,或者是生成JavaDoc,或者是發(fā)布文檔到倉庫颁井,Task作為原子工作存在
每個gradle build由一到多個Project組成
每個Project由一到多個Task組成
腳本基礎(chǔ)
可以通過 gradle 命令運行一個 Gradle 構(gòu)建
gradle 命令會在當(dāng)前目錄中查找一個叫 build.gradle 的文件. 我們稱這個 build.gradle 文件為一個構(gòu)建腳本 (build script), 但是嚴(yán)格來說它是一個構(gòu)建配置腳本 (build configuration script). 這個腳本定義了一個 project 和它的 tasks
- 腳本1
新建文件 build.gradle
task hello {
doLast {
println 'Hello World!'
}
}
在命令行下執(zhí)行 gradle -q hello
腳本定義了一個名為hello的任務(wù)潘靖,運行g(shù)radle hello時,執(zhí)行hello蚤蔓,并依次執(zhí)行任務(wù)中定義的動作卦溢。
其簡潔的定義為:
task hello << {
println 'Hello World!'
}
- 腳本2
task upper << {
String someString = 'MyName'
println "Original: " + someString
println "Upper case: " + someString.toUpperCase()
}
執(zhí)行gradle -q upper,顯示
Original: MyName
Upper case: MYNAME
- 腳本3
task count << {
4.times {
print "$it "
}
}
顯示
0 1 2 3
- 腳本4
task hello << {
println 'Hello World!'
}
task intro(dependsOn: hello) << {
println "I'm Gradle"
}
顯示
Hello World!
I'm Gradle
- 腳本5
4.times { counter ->
task "task$counter" << {
println "I'm task number $counter"
}
}
執(zhí)行gradle -q task2秀又,顯示
I'm task number 2
Java構(gòu)建
參考資料
Gradle User Guide中文版