Gradle 提供幾個(gè)選項(xiàng),使它容易配置將用于執(zhí)行構(gòu)建的 Java 進(jìn)程。同時(shí)可以通過(guò) GRADLE_OPTS 或 JAVA_OPTS 配置這些在你本地環(huán)境,包含的設(shè)置包括比如 JVM 內(nèi)存設(shè)置,Java home,守護(hù)進(jìn)程開(kāi)/關(guān),它們可以和你的項(xiàng)目在你的版本控制系統(tǒng)中被版本化的話(huà),將會(huì)更有用,這樣整個(gè)團(tuán)隊(duì)就可以使用一致的環(huán)境了。在你的構(gòu)建當(dāng)中,建立一致的環(huán)境,就和把這些配置放進(jìn) gradle.properties 文件一樣簡(jiǎn)單。這些配置將會(huì)按以下順序被應(yīng)用(以防在多個(gè)地方都有配置時(shí)只有最后一個(gè) 生效)
可以使用以下屬性來(lái)配置 Gradle 構(gòu)建環(huán)境:
org.gradle.daemon
當(dāng)設(shè)置為true 時(shí),Gradle 守護(hù)進(jìn)程會(huì)運(yùn)行構(gòu)建。對(duì)于本地開(kāi)發(fā)者的構(gòu)建而言,這是我們最喜歡的屬性。開(kāi)發(fā)人員的環(huán)境在速度和反饋上會(huì)優(yōu)化,所以我們幾乎總是使用守護(hù)進(jìn)程運(yùn)行 Gradle 作業(yè)。由于 CI 環(huán)境在一致性和可靠性上的優(yōu)化,我們不通過(guò)守護(hù)進(jìn)程運(yùn)行 CI 構(gòu)建(即長(zhǎng)時(shí)間運(yùn)行進(jìn)程)
org.gradle.java.home
為 Gradle 構(gòu)建進(jìn)程指定 java home 目錄。這個(gè)值可以設(shè)置為 jdk 或jre 的位置,不過(guò),根據(jù)你的構(gòu)建所做的,選擇 jdk 會(huì)更安全。如果該設(shè)置未指定,將使用合理的默認(rèn)值。
org.gradle.jvmargs
指定用于該守護(hù)進(jìn)程的 jvmargs。該設(shè)置對(duì)調(diào)整內(nèi)存設(shè)置特別有用。目前的內(nèi)存上的默認(rèn)設(shè)置很大方。
org.gradle.configureondemand
啟用新的孵化模式,可以在配置項(xiàng)目時(shí)使得 Gradle 具有選擇性。只適用于相關(guān)的項(xiàng)目被配置為在大型多項(xiàng)目中更快地構(gòu)建。請(qǐng)參閱?Section 57.1.1.1, “Configuration on demand”.
org.gradle.parallel
如果配置了這一個(gè),Gradle 將在孵化的并行模式下運(yùn)行。
許多設(shè)置(如 Java 版本和最大堆大?。┲荒茉趩?dòng)一個(gè)新的 JVM 構(gòu)建進(jìn)程時(shí)指定。這意味著 Gradle 在分析了各種 gradle.properties 文件之后,必須啟動(dòng)一個(gè)單獨(dú)的 JVM 進(jìn)程,以執(zhí)行構(gòu)建操作。當(dāng)通過(guò)守護(hù)進(jìn)程運(yùn)行時(shí),帶有正確參數(shù)的 JVM 會(huì)啟動(dòng)一次,并在每次的守護(hù)進(jìn)程構(gòu)建執(zhí)行時(shí)復(fù)用。當(dāng)不通過(guò)守護(hù)進(jìn)程執(zhí)行 Gradle 時(shí),在每次構(gòu)建執(zhí)行中都必須啟動(dòng)一個(gè)新的 JVM ,除非 JVM 是由 Gradle 啟動(dòng)腳本啟動(dòng)的,并且恰好具有相同的參數(shù)。
在執(zhí)行每個(gè)構(gòu)建時(shí)運(yùn)行一個(gè)額外的 JVM 的代價(jià)是非常昂貴的,這就是為什么我們強(qiáng)烈推薦您使用 Gradle 守護(hù)進(jìn)程,如果你指定了org.gradle.java.home 或 org.gradle.jvmargs。更多詳細(xì)信息,請(qǐng)參閱Chapter 19. The Gradle Daemon 守護(hù)進(jìn)程。
配置 HTTP 代理服務(wù)器 (例如用于下載依賴(lài)) 是通過(guò)標(biāo)準(zhǔn)的 JVM 系統(tǒng)屬性來(lái)做的。這些屬性可以直接在構(gòu)建腳本中設(shè)置;例如設(shè)置代理主機(jī)為System.setProperty ('http.proxyHost', 'www.somehost.org')?;蛘?,可以在構(gòu)建的根目錄或Gradle 主目錄中的 gradle.properties 文件中指定這些屬性。
xample 20.1. Configuring an HTTP proxy
gradle.properties
systemProp.http.proxyHost=www.somehost.org
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=userid
systemProp.http.proxyPassword=password
systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost
對(duì)于 HTTPS 有單獨(dú)的設(shè)置。
Example 20.2. Configuring an HTTPS proxy
gradle.properties
systemProp.https.proxyHost=www.somehost.org
systemProp.https.proxyPort=8080
systemProp.https.proxyUser=userid
systemProp.https.proxyPassword=password
systemProp.https.nonProxyHosts=*.nonproxyrepos.com|localhost
我們無(wú)法很好地概述所有可能的代理服務(wù)器設(shè)置。其中可以去看的一個(gè)地方是 Ant 項(xiàng)目的一個(gè)文件中的常量。這里是Subversion 的視圖的鏈接。另一個(gè)地方是 JDK 文檔的Networking Properties(網(wǎng)絡(luò)屬性)。如果有人知道更好的概述,請(qǐng)發(fā)郵件讓我們知道。
如果您的代理服務(wù)器需要 NTLM 身份驗(yàn)證,您可能需要提供驗(yàn)證域,以及用戶(hù)名和密碼。有兩種方法可以向 NTLM 代理提供驗(yàn)證域:
更多建議: