## 20.1\. 通過 gradle.propert 配置構建環境
Gradle 提供幾個選項,使它容易配置將用于執行構建的 Java 進程。同時可以通過 GRADLE_OPTS 或 JAVA_OPTS 配置這些在你本地環境,包含的設置包括比如 JVM 內存設置,Java home,守護進程開/關,它們可以和你的項目在你的版本控制系統中被版本化的話,將會更有用,這樣整個團隊就可以使用一致的環境了。在你的構建當中,建立一致的環境,就和把這些配置放進 gradle.properties 文件一樣簡單。這些配置將會按以下順序被應用(以防在多個地方都有配置時只有最后一個 生效)
* 從 gradle.properties 在項目構建 dir。
* 從 gradle.properties 在 gradle user home.
* 從系統屬性,例如當 -Dsome.property 在命令行上設置。
可以使用以下屬性來配置 Gradle 構建環境:
org.gradle.daemon
當設置為true 時,Gradle 守護進程會運行構建。對于本地開發者的構建而言,這是我們最喜歡的屬性。開發人員的環境在速度和反饋上會優化,所以我們幾乎總是使用守護進程運行 Gradle 作業。由于 CI 環境在一致性和可靠性上的優化,我們不通過守護進程運行 CI 構建(即長時間運行進程)
org.gradle.java.home
為 Gradle 構建進程指定 java home 目錄。這個值可以設置為 jdk 或jre 的位置,不過,根據你的構建所做的,選擇 jdk 會更安全。如果該設置未指定,將使用合理的默認值。
org.gradle.jvmargs
指定用于該守護進程的 jvmargs。該設置對調整內存設置特別有用。目前的內存上的默認設置很大方。
org.gradle.configureondemand
啟用新的孵化模式,可以在配置項目時使得 Gradle 具有選擇性。只適用于相關的項目被配置為在大型多項目中更快地構建。請參閱?[Section 57.1.1.1, “Configuration on demand”.](http://gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand)
org.gradle.parallel
如果配置了這一個,Gradle 將在孵化的并行模式下運行。
### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2020.%20The%20Build%20Environment%20%E6%9E%84%E5%BB%BA%E7%8E%AF%E5%A2%83.md#2011-forked-java-processes)20.1.1\. Forked Java processes
許多設置(如 Java 版本和最大堆大小)只能在啟動一個新的 JVM 構建進程時指定。這意味著 Gradle 在分析了各種 gradle.properties 文件之后,必須啟動一個單獨的 JVM 進程,以執行構建操作。當通過守護進程運行時,帶有正確參數的 JVM 會啟動一次,并在每次的守護進程構建執行時復用。當不通過守護進程執行 Gradle 時,在每次構建執行中都必須啟動一個新的 JVM ,除非 JVM 是由 Gradle 啟動腳本啟動的,并且恰好具有相同的參數。
在執行每個構建時運行一個額外的 JVM 的代價是非常昂貴的,這就是為什么我們強烈推薦您使用 Gradle 守護進程,如果你指定了org.gradle.java.home 或 org.gradle.jvmargs。更多詳細信息,請參閱[Chapter 19\. The Gradle Daemon 守護進程](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2019.%20The%20Gradle%20Daemon%20%E5%AE%88%E6%8A%A4%E8%BF%9B%E7%A8%8B.md)。
## [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2020.%20The%20Build%20Environment%20%E6%9E%84%E5%BB%BA%E7%8E%AF%E5%A2%83.md#202-accessing-the-web-via-a-proxy-通過代理訪問-web)20.2\. Accessing the web via a proxy 通過代理訪問 web
配置 HTTP 代理服務器 (例如用于下載依賴) 是通過標準的 JVM 系統屬性來做的。這些屬性可以直接在構建腳本中設置;例如設置代理主機為System.setProperty ('http.proxyHost', '[www.somehost.org')。或者,可以在構建的根目錄或](http://www.somehost.org%27%29.xn--%2C-306a34nlzd97mvpa77mga126j0vb7y9enbbcy4e/)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
~~~
對于 HTTPS 有單獨的設置。
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
~~~
我們無法很好地概述所有可能的代理服務器設置。其中可以去看的一個地方是 Ant 項目的一個文件中的常量。這里是Subversion 的視圖的[鏈接](http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/util/ProxySetup.java?view=markup&pathrev=556977)。另一個地方是 JDK 文檔的[Networking Properties(網絡屬性)](http://download.oracle.com/javase/6/docs/technotes/guides/net/properties.html)。如果有人知道更好的概述,請發郵件讓我們知道。
### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2020.%20The%20Build%20Environment%20%E6%9E%84%E5%BB%BA%E7%8E%AF%E5%A2%83.md#2021-ntlm-authentication)20.2.1\. NTLM Authentication
如果您的代理服務器需要 NTLM 身份驗證,您可能需要提供驗證域,以及用戶名和密碼。有兩種方法可以向 NTLM 代理提供驗證域:
* 將 http.proxyUser 系統屬性設置為一個這樣的值:域/用戶名。
* 通過 http.auth.ntlm.domain 系統屬性提供驗證域。
- 關于
- 第1章 Introduction 介紹
- 第2章 Overview 總覽
- 第3章 Tutorials 教程
- 第4章 Installing Gradle 安裝
- 第5章 Troubleshooting 問題解決
- 第6章 Build Script Basics 構建腳本的基礎識
- 第7章 Java Quickstart 快速開始 Java
- 第8章 Dependency Management Basics 依賴管理的基礎知識
- 第9章 Groovy Quickstart 快速開始 Groovy
- 第10章 Web Application Quickstart 快速開始 Web 應用
- 第11章 Using the Gradle Command-Line 使用 Gradle 命令行
- 第12章 Using the Gradle Graphical User Interface 使用 Gradle 圖形化用戶界面
- 第13章 Writing Build Scripts 編寫構建腳本
- 第14章 Tutorial - 'This and That' 教程-這個那個
- 第15章 More about Tasks 更多關于任務
- 第16章 Working With Files 跟文件工作
- 第17章 Using Ant from Gradle 從 Gradle 使用 Ant
- 第18章 Logging 日志.md
- 第19章 The Gradle Daemon 守護進程
- 第20章 The Build Environment 構建環境
- 第21章 Gradle Plugins 插件
- 第22章 Standard Gradle plugins 標準 Gradle 插件
- 附錄E Existing IDE Support and how to cope without it 支持的 IDE 以及如何應對沒有它