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