gradle使用
gradle介紹
java的源碼構(gòu)建工具,大致經(jīng)歷了 ant -> maven -> gradle 這個(gè)過(guò)程,每一次進(jìn)步,都是在解決之前的工具所帶來(lái)的問(wèn)題,簡(jiǎn)單來(lái)說(shuō):
ant 功能雖然也很強(qiáng)大,但是過(guò)于靈活,規(guī)范性不足,對(duì)目錄結(jié)構(gòu)及build.xml沒(méi)有默認(rèn)約定 ,10個(gè)程序員做同樣的項(xiàng)目,可能最終出來(lái)的10個(gè)項(xiàng)目,目錄結(jié)構(gòu)和build.xml都不相同,而且沒(méi)有統(tǒng)一的依賴項(xiàng)管理。
maven的出現(xiàn),解決了規(guī)范的問(wèn)題,也順帶解決了依賴項(xiàng)統(tǒng)一管理的問(wèn)題,但是規(guī)范性又太強(qiáng)了,基本上可以認(rèn)為是一種強(qiáng)規(guī)范,用久了之后,感覺(jué)靈活性顯略不足,而且pom.xml采用xml結(jié)構(gòu),項(xiàng)目大了,xml就有些冗長(zhǎng)。
gradle則是綜合了ant與maven的優(yōu)點(diǎn),吸收了ant中task的思想,然后把maven的目錄規(guī)范及倉(cāng)庫(kù)思想也融合進(jìn)來(lái)了,但是允許用戶自由修改默認(rèn)的規(guī)范(比如:源代碼目錄可以自己指定),另外配置文件采用groovy語(yǔ)言來(lái)書(shū)寫(xiě)(格式初看上去有點(diǎn)類(lèi)似json,比較精減),注意:groovy是一門(mén)真正的【可編程】語(yǔ)言,而不是象css、html之類(lèi)的標(biāo)記性「符號(hào)」,所以從這個(gè)意義上講,配置文件build.gradle本身就是一份源代碼,這份源代碼,最終交由gradle來(lái)處理執(zhí)行,完成代碼的構(gòu)建工作。
gradle的發(fā)展速度之快,是ant 與 maven所不能比擬的,看下gradle官網(wǎng)的文檔就能感受到了,一個(gè)新興的工具文檔如此之齊全,可見(jiàn)大家對(duì)它的認(rèn)可程度。
gradle安裝
下載壓縮包,解壓即可。
配置環(huán)境變量:
GRADLE_HOME:gradle安裝路徑,PATH中加入 %GRADLE_HOME%\bin;
GRADLE_USER_HOME:倉(cāng)庫(kù)路徑
gradle命令
-
幫助命令
gradle --help -
查看版本
gradle -v -
執(zhí)行特定的任務(wù)
gradle [taskName] -
構(gòu)建
gradle build -
跳過(guò)測(cè)試構(gòu)建構(gòu)建
gradle build -x test -
繼續(xù)執(zhí)行任務(wù)而忽略前面失敗的任務(wù)
gradle build --continue -
試運(yùn)行build
gradle -m build -
產(chǎn)生build運(yùn)行時(shí)間的報(bào)告
gradle build --profile
結(jié)果存儲(chǔ)在build/report/profile目錄,名稱為build運(yùn)行的時(shí)間。 -
顯示任務(wù)間的依賴關(guān)系
gradlle tasks --all -
查看testCompile的依賴關(guān)系
gradle -q dependencies --configuration testCompile -
清空所有編譯、打包生成的文件(即:清空build目錄)
gradle clean -
使用指定的Gradle文件調(diào)用任務(wù)
gradle -b [file_path] [task] -
使用指定的目錄調(diào)用任務(wù)
gradle -q -p [dir] helloWorld -
Gradle的圖形界面
gradle --gui
Gradle的命令日志輸出有ERROR(錯(cuò)誤信息)、QUIET(重要信息)、WARNGING(警告信息)、LIFECYLE(進(jìn)程信息)、 INFO(一般信息)、DEBUG (調(diào)試信息)一共6個(gè)級(jí)別。在執(zhí)行Gradle任務(wù)是可以適時(shí)地調(diào)整信息輸出等級(jí),以方便地觀看執(zhí)行結(jié)果。
- -q/–quit 啟用重要信息級(jí)別,改級(jí)別下只會(huì)輸出自己在命令行下打印的信息及錯(cuò)誤信息。
- -i/–info 會(huì)輸出除DEBUG以外的所有信息。
- -d/–dubug 會(huì)輸出所有日志信息。
- -s/–stacktrace 會(huì)輸出詳細(xì)的錯(cuò)誤堆棧。
gradle問(wèn)題
下載倉(cāng)庫(kù)慢
如果Gradle在編譯的時(shí)候沒(méi)有在本地倉(cāng)庫(kù)中發(fā)現(xiàn)依賴,就會(huì)從遠(yuǎn)程倉(cāng)庫(kù)中下載,默認(rèn)的遠(yuǎn)程倉(cāng)庫(kù)為mavenCentral(),也就是http://repo1.maven.org/maven2/,但是往往訪問(wèn)速度特別慢,不翻墻經(jīng)常會(huì)下載超時(shí)或者需要很長(zhǎng)時(shí)間導(dǎo)致Build失敗,因此,可以用國(guó)內(nèi)的倉(cāng)庫(kù)代替:
- 阿里的倉(cāng)庫(kù)地址:http://maven.aliyun.com/nexus/content/groups/public/
- OSChina的倉(cāng)庫(kù)地址:http://maven.oschina.net/content/groups/public/
修改單獨(dú)項(xiàng)目
在項(xiàng)目的build.gradle文件中,修改repositories配置
由:
改為:
repositories {maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}}或:
repositories {maven{ url 'http://maven.oschina.net/content/groups/public/'}}這樣就可以從國(guó)內(nèi)的鏡像中下載依賴,速度能提高不少
注意:
- build.gradle文件里有兩處repositories,都需要改掉
- 阿里云的速度比較快,更穩(wěn)定
更改所有項(xiàng)目
如果想一次更改所有的倉(cāng)庫(kù)地址,可以在USER_HOME/.gradle/(如C:\Users\hellowood\.gradle)文件夾下添加init.gradle文件來(lái)配置
- init.gradle
這樣就可以在項(xiàng)目編譯的時(shí)候從阿里的倉(cāng)庫(kù)中下載依賴了
- init.build腳本可以參考 https://docs.gradle.org/current/userguide/init_scripts.htm
總結(jié)
- 上一篇: Typora云图片
- 下一篇: skywalking环境搭建