gradle之gradlew最全指令攻略

  Gradle是一個構建工具,它是用來幫助我們構建app的,構建包括編譯、打包等過程。我們可以爲Gradle指定構建規則,然後它就會根據我們的“命令”自動爲我們構建app。Android Studio中默認就使用Gradle來完成應用的構建,除此之外我們可以用gradle的指令選擇性的去構建我們所需要的app。用gradle的指令構建app,需要用到gradlew(即gradle wrapper的簡寫),本文對gradlew的常用指令做一個總結。

  gradlew與gradlew.bat: gradlew爲Linux下的shell腳本,gradlew.bat是Windows下的批處理文件。gradlew是gradle wrapper的縮寫,也就是說它對gradle的命令進行了包裝,比如我們進入到指定Module目錄並執行“gradlew.bat assemble”即可完成對當前Module的構建(Windows系統下)。

  gradlew使用標準格式:gradlew [option...] [task...]
其中:option表示選項,task表示任務。也可以用:gradlew [task...] [option...],具體用哪種格式可以根據個人愛好決定。下面對gradlew的常用指令做一個說明:

  • gradlew -?/-h/--help:顯示幫助信息,即會打印可選參數及參數說明信息;
  • gradlew -v/--version:版本號(會打印工程用的Gradle的版本號、Kotlin、Groovy、Ant、JVM、OS等的版本號);
  • gradlew tasks --all:查看所有任務,包括緩存任務等;
  • gradlew clean:清除工程目錄下的build文件夾;
  • gradlew build: 檢查依賴並編譯打包,debug、release環境的包都會打出來;
  • gradlew assemble***:編譯指定的包:如Debug包(gradlew assembleDebug)、Release包(gradlew assembleRelease)、渠道包(gradlew assembleOemRelease/assembleOemDebug)、定製的版本等等;
  • gradlew install***:編譯並安裝指定的包:如Debug包(gradlew installDebug)、Release包(gradlew installOemRelease/installOemDebug)、定製的版本等等;
  • gradlew uninstall**:卸載已安裝的指定模式的包:如Debug包(gradlew uninstallDebug)、Release包(gradlew uninstallRelease)、渠道包(gradlew uninstallOemRelease/uninstallOemDebug)、定製的版本等等;
  • gradlew :模塊名稱:dependencies,如gradlew :app:dependencies,作用:查看包依賴關係;
  • gradlew build -i/--info -d/--debug -s/--stacktrace:編譯(build)並打印debug模式和info等級的日誌及所用異常的堆棧信息(--stacktrace);
  • gradlew clean build --refresh-dependencies:組合指令,清除構建(gradlew clean)並重新構建(gradlew build),同時強制刷新依賴(gradlew --refresh-dependencies);
  • gradlew --offline:離線模式,即讓Gradle只使用本地cache裏的依賴,如果cache中沒有也不會更新依賴,而是提示編譯失敗;
  • gradlew --refresh-dependencies:強制刷新依賴,即檢查依賴是否有更新比如動態版本、SHA1進行本地cache和遠程倉庫散列碼的對比等,有更新則下載更新進行構建;使用這種方式可以避免手動刪除cache;
  • --info:打印堆棧信息;
  • gradlew --daemon:守護進程,使用Gradle的守護進程構建,能夠提高構建效率,如果守護進程沒啓動或現有的都處於忙碌狀態,就啓動一個守護進程;
  • gradlew --no-daemon:如果你已經配置爲使用守護進程構建,可以使用該選項本次不用守護進程構建;
  • gradlew --continuous:連續構建,即任務隊列中即使某個任務失敗,不會終止執行,而是會繼續執行下一個任務;
  • gradlew --parallel --parallel-threads=N:並行編譯;
  • gradlew --configure-on-demand:按需編譯。

  總結:gradlew的有些指令有簡寫的方式,如"gradlew --version"可以用簡寫方式"gradlew -v代替,"gradlew --help"可以用簡寫方式"gradlew -h""或gradlew -?"代替,"gradlew --no-rebuild"可以用簡寫方式"gradlew -a"代替,"gradlew --debug"可以用簡寫方式"gradlew -d"代替,"gradlew --stacktrace"可以用簡寫方式"gradlew -s代替等等,可以發現簡寫的指令只需要一個減號(“-”)開頭,沒有簡寫的指令需要用兩個減號(即“--”)開頭。

  如果感覺我的文章對您有用,請給個喜歡,如果有疑問,也歡迎在下方留言,謝謝!!!



作者:alexlee1986
鏈接:https://www.jianshu.com/p/845fafdfe602
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章