Gradle入門
配置Gradle環(huán)境
安裝之前確保已經(jīng)安裝配置好Java環(huán)境,要求JDK6以上,并且在環(huán)境變量里配置了JAVA_HOME,查看Java版本可以在終端輸入如下命令:
java -version
顯示結(jié)果如下:
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
Linux下搭建Gradle構(gòu)建環(huán)境
先到Gradle官網(wǎng)https://gradle.org下載好Gradle SDK。建議下載all版本,包含了Gradle SDK所有相關(guān)內(nèi)容,包括源代碼,文檔,示例等。下載后解壓。
要運(yùn)行Gradle,必須把Gradle_HOME/bin目錄添加到環(huán)境變量PATH中。在Linux下,如果只想為當(dāng)前登錄的用戶配置可以運(yùn)行Gradle,那么可以編輯~/.bashrc文件,添加以下內(nèi)容:
#這里是我的Gradle目錄,換成你自己的
GRADLE_HOME=/home/wangyz/gradle
PATH=${PATH}:${GRADLE_HOME}/bin
Export GRADLE_HOME PATH
上面GRADLE_HOME是我的Gradle解壓后的目錄,這里需要換成你自己的。添加保存后,在終端輸入source ~/.bashrc,回車執(zhí)行讓剛才的配置生效。
如果想讓所有用戶都可以使用Gradle,那么你需要在/etc/profile中添加以上內(nèi)容,并執(zhí)行source /etc/profile使配置生效。
現(xiàn)在已經(jīng)配置好了,要驗(yàn)證我們的配置是否正確,是否可以運(yùn)行Gradle,只需要打開終端,輸入gradle -v命令查看即可,如果能正確顯示Gradle版本號,Groovy版本號,JVM等相關(guān)信息,那么說明已經(jīng)配置成功。
------------------------------------------------------------
Gradle 5.6
------------------------------------------------------------
Build time: 2019-08-14 21:05:25 UTC
Revision: f0b9d60906c7b8c42cd6c61a39ae7b74767bb012
Kotlin: 1.3.41
Groovy: 2.5.4
Ant: Apache Ant(TM) version 1.9.14 compiled on March 12 2019
JVM: 1.8.0_221 (Oracle Corporation 25.221-b11)
OS: Linux 4.18.0-15-generic amd64
Windows下搭建Gradle構(gòu)建環(huán)境
通過右擊我的電腦,打開屬性面板,然后找到環(huán)境變量配置項(xiàng),添加GRADLE_HOME環(huán)境變量,然后把GRADLE_HOME/bin添加到PATH系統(tǒng)變量里保存即可。完成后打開CMD,運(yùn)行g(shù)radle -v來進(jìn)行驗(yàn)證。
Gradle版Hello World
新建一個目錄,我這里是Gradle,然后在該目錄下創(chuàng)建一個名為build.gradle的文件。打開編輯該文件,輸入以下內(nèi)容:
task hello{
doLast{
println 'hello,world!'
}
}
打開終端,然后移動到gradle下,使用gradle -q hello命令來執(zhí)行構(gòu)建腳本:
gradle -q hello
hello,world!
build.gradle是Gradle默認(rèn)的構(gòu)建腳本文件,執(zhí)行Gradle命令的時(shí)候,會默認(rèn)加載當(dāng)前目錄下的build.gradle腳本文件。也可以通過-b參數(shù)來指定想要加載執(zhí)行的文件。
gradle -q hello,這段命令,意思是想執(zhí)行build.gradle腳本中定義的名為hello的Task,-q參數(shù)用于控制gradle輸出的日志級別,以及哪些日志可以輸出被看到。
在Gradle中,單引號和雙引號所包含的內(nèi)容都是字符串。
Gradle Wrapper
Wrapper就是對Gradle的一層包裝,便于在團(tuán)隊(duì)開發(fā)過程中統(tǒng)一Gradle構(gòu)建的腳本,避免因?yàn)镚radle版本不統(tǒng)一帶來的不必要問題。
生成Wrapper
Gradle提供了內(nèi)置的Wrapper task幫助我們自動生成Wrapper所需的目錄文件,在一個項(xiàng)目的根目錄下輸入gradle wrapper即可生成。
gradlew和gradle.bat分別是Linux和Windows下的可執(zhí)行腳本,它們的用法和Gradle原生命令是一樣的。
Wrapper配置
當(dāng)我們在終端執(zhí)行g(shù)radle wrapper生成相關(guān)文件的時(shí)候,可以為其指定一些參數(shù),來控制Wrapper的生成。
--gradle-version:用于指定使用的Gradle版本
--gradle-distribution-url:用于指定下載Gradle發(fā)行版的url地址
如果在調(diào)用gradle wrapper的時(shí)候,不添加任何參數(shù),那么就會使用當(dāng)前Gradle版本作為生成的Wrapper的gradle version。
gralde-wrapper.properties
該配置文件是gradle wrapper的相關(guān)配置文件,我們上面執(zhí)行該任務(wù)的任何配置都會被寫進(jìn)該文件。
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
自定義Wrapper Task
在build.gradle構(gòu)建文件中加入以下腳本:
task mywrapper(type:Wrapper){
gradleVersion='5.6'
}
在這里指定了gradle版本。
Gradle日志
日志級別
Gradle的日志級別和我們使用的大部分語言差不多。除了這些通用的之外,Gradle又增加了QUIET和LIFECYCLE兩個級別,用于標(biāo)記重要以及進(jìn)度級別的日志信息。
級別 | 用于 |
---|---|
ERROR | 錯誤消息 |
QUIET | 重要消息 |
WARNING | 警告消息 |
LIFECYCLE | 進(jìn)度消息 |
INFO | 信息消息 |
DEBUG | 調(diào)試消息 |
具體用法
#輸出QUIET級別及以上的日志信息
gradle -q task
輸出錯誤堆棧信息
默認(rèn)情況下,堆棧信息的輸出是關(guān)閉的。
命令行選項(xiàng) | 用于 |
---|---|
無選項(xiàng) | 沒有堆棧信息輸出 |
-s或者-stacktrace | 輸出關(guān)鍵性的堆棧信息 |
-S或者--full-stacktrace | 輸出全部堆棧信息 |
一般推薦使用-s而不是-S,因?yàn)?S輸出的堆棧太多太長。不好看。而-s比較精簡,可以定位解決我們大部分的問題。
自己使用日志信息調(diào)試
通常情況下我們一般都是使用print系統(tǒng)方法,把日志信息輸出到標(biāo)準(zhǔn)的控制臺輸出流。
除了print系統(tǒng)方法之外,也可以使用內(nèi)置的logger更靈活地控制輸出不同級別的日志。
logger.quiet('quiet日志信息')
logger.error('error日志信息')
logger.warn('warn日志信息')
Gradle命令行
使用幫助
查看幫助的方式很簡單,基本都是在命令后跟-h或者--help。有的時(shí)候會有-?.如:
./gradlew -?
./gradle -h
./gradle -help
查看所有可執(zhí)行的Tasks
通過運(yùn)行./gradlew tasks命令。
Gradle Help任務(wù)
Gradle還內(nèi)置了一個help task,這個help可以讓我們了解每一個task的使用幫助,用法是./gradlew help --task.
強(qiáng)制刷新依賴
強(qiáng)制刷新很簡單,只要在命令行運(yùn)行的時(shí)候加上--refresh-dependencies參數(shù)就可以。
多任務(wù)調(diào)用
通過命令行執(zhí)行多個任務(wù)非常簡單,只需要按順序以空格分開就可以了。如./gradlew clean jar。
通過任務(wù)名字縮寫執(zhí)行
Gradle提供了基于駝峰命名法的縮寫調(diào)用。比如connectCheck,執(zhí)行的時(shí)候可以使用./gradlew connectTask,也可以使用./gradlew cC的方法來執(zhí)行。