Gradle Wrapper
簡介
Gradle Wrapper就是對Gradle的一層封裝,一個項目可以使用指定的gradle版本進行構建而不受當前機器安裝的gradle版本影響,便於一臺機器的多個項目使用不同的gradle版本進行構建而互不影響。當執行gradlew命令的時候,wrapper會檢查緩存判斷當前機器是否已經安裝了對應版本的gradle,如果安裝了那麽gradlew就會委托gradle執行用戶輸入的命令,如果還未安裝的話,那麽首先會自動幫我們從配置的下載地址下載。因此使用gradle的正確姿勢是使用gradlew而不是gradle命令,因內網無法連接到外網去下載指定的gradle版本,我們需要手動將對應的gradle版本放在緩存目錄。
Windows命令: gradlew xxx
Linux命令: ./gradlew xxx
Wrapper的配置文件是gradle\wrapper\gradle-wrapper.properties
如上圖所示則執行gradlew命令時指定使用gradle 4.4版本構建項目
PS:每一個Android Studio項目都有gradle wrapper,可以在項目根目錄下查看
緩存
Gradle的默認緩存目錄為~/.gradle,即用戶主目錄下的.gradle目錄,如不設置環境變量GRADLE_USER_HOME,wrapper對應的緩存目錄為~/.gradle/wrapper/dists,如設置環境變量GRADLE_USER_HOME,則wrapper對應的緩存目錄為$GRADLE_USER_HOME/wrapper/dists
配置
此處以gradle-4.4-all.zip為例
1.將gradle-4.4-all.zip放入以下目錄:
~/.gradle\wrapper\dists\gradle-4.4-all\9br9xq1tocpiv8o6njlyu5op1,路徑中的任何目錄如gradle-4.4-all不存在創建即可,其中9br9xq1tocpiv8o6njlyu5op1為按照一定規則生成的字符串,可參考Gradle緩存目錄文件命名規則
2.解壓gradle-4.4-all.zip到當前目錄
unzip gradle-4.4-all.zip(Linux)
3.建立空文件gradle-4.4-all.zip.lck和gradle-4.4-all.zip.ok
touch gradle-4.4-all.zip.lck gradle-4.4-all.zip.ok(Linux)
最後的目錄結構如下:
驗證
創建一個目錄如test,然後執行gradle wrapper命令,然後修改配置文件gradle\wrapper\gradle-wrapper.properties中的distributionUrl,如修改後的文件如下:
此時在test目錄下執行gradlew –v,如顯示版本信息,則配置成功
Gradle Wrapper