Gradle是一個構(gòu)建工具金踪,它是用來幫助構(gòu)建App的,構(gòu)建包括編譯牵敷、打包等過程胡岔。我們可以為Gradle指定構(gòu)建規(guī)則,然后它就會根據(jù)我們的指定的規(guī)則構(gòu)建App枷餐。Android Studio默認(rèn)就使用Gradle來完成應(yīng)用的構(gòu)建姐军,除此之外我們可以用Gradle的指令選擇性的去構(gòu)建我們需要的App。
gradlew是gradle wrapper的簡寫尖淘。gradlew與gradlew.bat:gradlew是Linux下的shell腳本奕锌,gradlew.bat是Windows下的批處理文件。
gradlew使用標(biāo)準(zhǔn)格式:gradlew [option...] [task...]村生,其中:option表示選項惊暴,task表示任務(wù)。下邊介紹下gradlew常用的指令:(當(dāng)然我們在使用gradlew命令的時候需要先配置gradle的環(huán)境變量)
gradlew的指令:
- gradlew -?/-h/--help:顯示幫助信息趁桃,會打印可選參數(shù)及參數(shù)的說明信息辽话。
- gradlew -v/--version:版本號(會打印工程用的Gradle的版本號、Kotlin卫病、Groovy油啤、Ant、JVM蟀苛、OS等的版本號)
- gradlew tasks --all:查看所有任務(wù)益咬,包括緩存任務(wù)等
- gradlew clean:清除工程目錄下的build文件夾
- gradlew build:檢查依賴并編譯打包,debug帜平、release環(huán)境下的包都會打出來
- 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摔敛,作用:查看包依賴關(guān)系;
- gradlew build -i/--info -d/--debug -s/--stacktrace:編譯(build)并打印debug模式和info等級的日志及所用異常的堆棧信息(--stacktrace)全封;
- gradlew clean build --refresh-dependencies:組合指令马昙,清除構(gòu)建(gradlew clean)并重新構(gòu)建(gradlew build),同時強(qiáng)制刷新依賴(gradlew --refresh-dependencies)刹悴;
- gradlew --offline:離線模式行楞,即讓Gradle只使用本地cache里的依賴,如果cache中沒有也不會更新依賴土匀,而是提示編譯失斪臃俊;
- gradlew --refresh-dependencies:強(qiáng)制刷新依賴,即檢查依賴是否有更新比如動態(tài)版本证杭、SHA1進(jìn)行本地cache和遠(yuǎn)程倉庫散列碼的對比等田度,有更新則下載更新進(jìn)行構(gòu)建;使用這種方式可以避免手動刪除cache解愤;
--info:打印堆棧信息镇饺; - gradlew --daemon:守護(hù)進(jìn)程,使用Gradle的守護(hù)進(jìn)程構(gòu)建送讲,能夠提高構(gòu)建效率奸笤,如果守護(hù)進(jìn)程沒啟動或現(xiàn)有的都處于忙碌狀態(tài),就啟動一個守護(hù)進(jìn)程哼鬓;
- gradlew --no-daemon:如果你已經(jīng)配置為使用守護(hù)進(jìn)程構(gòu)建监右,可以使用該選項本次不用守護(hù)進(jìn)程構(gòu)建;
- gradlew --continuous:連續(xù)構(gòu)建异希,即任務(wù)隊列中即使某個任務(wù)失敗健盒,不會終止執(zhí)行,而是會繼續(xù)執(zhí)行下一個任務(wù)宠互;
- gradlew --parallel --parallel-threads=N:并行編譯味榛;
- gradlew --configure-on-demand:按需編譯。