Gradle: Gradle Wrapper

【Gradle 安裝】java

安裝完畢後,記得設置一下環境變量。
Environment Variables:
GRADLE_HOME=D:\Program Files\Gadle\gradle-4.7
Path=%GRADLE_HOME%\binlinux


【Gradle Wrapper】
gradlew的本質是 gradle 命令的一個wrapper,也就是在gradle的基礎上添加了一些額外功能具體來講就是自動下載。windows

wrapper執行流程:
1)根據gradle-wrapper.properties 的配置檢查是否須要安裝gradle
2)若是本地的gradle通過checksum驗證經過,則不須要下載gradle,不然下載並安裝gradle到某個目錄
3)安裝完畢,開始執行 tasksapp

gradle-wrapper.properties配置說明:gradle

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

 

默認配置如上,意思是說,從distributionUrl 下載gradle-4.7-bin.zip存放到 zipStoreBase + zipStorePath 目錄下,而後安裝到 distributionBase + distributionPath 目錄下。spa

distributionBase, zipStoreBase 均可以取兩個值:GRADLE_USER_HOME 或者 PROJECT
若是取值爲PROJECT,則計算路徑是 基於project目錄來計算。
若是取值爲GRADLE_USER_HOME,則計算路徑是基於 用戶的 home目錄來計算的。
也就是說對於windows操做系統,默認基於 c:\users\<user_home>\.gradle
對於linux 系統,默認基於 $USER_HOME\.gradle 來計算
操作系統

查看了gradle-wrapper.jar的源碼,能夠知道,當設置爲GRADLE_USER_HOME時,會有一個搜索
Gradle home的過程:code

1) -g 參數
2)java系統屬性: -Dgradle.user.home
3) 環境變量:GRADLE_USER_HOME
4)用戶 home 目錄 (默認值)blog

private static File gradleUserHome(final ParsedCommandLine options) {
        if (options.hasOption("g")) {
            return new File(options.option("g").getValue());
        }
        return GradleUserHomeLookup.gradleUserHome();
    }

public class GradleUserHomeLookup
{
    public static final String DEFAULT_GRADLE_USER_HOME;
    public static final String GRADLE_USER_HOME_PROPERTY_KEY = "gradle.user.home";
    public static final String GRADLE_USER_HOME_ENV_KEY = "GRADLE_USER_HOME";
    
    public static File gradleUserHome() {
        String gradleUserHome;
        if ((gradleUserHome = System.getProperty("gradle.user.home")) != null) {
            return new File(gradleUserHome);
        }
        if ((gradleUserHome = System.getenv("GRADLE_USER_HOME")) != null) {
            return new File(gradleUserHome);
        }
        return new File(GradleUserHomeLookup.DEFAULT_GRADLE_USER_HOME);
    }
    
    static {
        DEFAULT_GRADLE_USER_HOME = System.getProperty("user.home") + "/.gradle";
    }
}

 


若是想要使用你已經安裝的gradle,怎麼辦呢?
這個在使用gradle-wrapper時是行不通的,除非你不使用gradle-wrapper來構建
如何使用已經離線的下載的zip安裝包呢?
修改gradle-wrapper.properties中配置項爲本地URL便可。ip

例如我以前經過在線方式安裝了gradle-4.7-bin.zip, 我拿到該zip文件,copy一份放到D盤,修更名稱爲:gradle-4.7-bin-test.zip, 而後修改gradle-wrapper.properties中配置項爲:distributionUrl=file\:///d:/gradle-4.7-bin-test.zip 而後使用gradlew 執行一個task,就自動安裝好了。

相關文章
相關標籤/搜索