透過代理存取網路

設定代理(例如,用於下載相依項)是透過標準 JVM 系統屬性來完成的。

這些屬性可以直接在建置指令碼中設定。例如,設定 HTTP 代理主機會使用 System.setProperty('http.proxyHost', 'www.somehost.org') 來完成。

或者,這些屬性可以 指定在 gradle.properties 中。

範例 1:使用 gradle.properties 設定 HTTP 代理

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 有個別的設定。

範例 2:使用 gradle.properties 設定 HTTPS 代理

systemProp.https.proxyHost=www.somehost.org
systemProp.https.proxyPort=8080
systemProp.https.proxyUser=userid
systemProp.https.proxyPassword=password
# NOTE: this is not a typo.
systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost

SOCKS 有個別的設定。

範例 3:使用 gradle.properties 設定 SOCKS 代理

systemProp.socksProxyHost=www.somehost.org
systemProp.socksProxyPort=1080
systemProp.java.net.socks.username=userid
systemProp.java.net.socks.password=password

您可能需要設定其他屬性來存取其他網路。

有用的參考

NTLM 驗證

如果您的代理需要 NTLM 驗證,您可能需要提供驗證網域以及使用者名稱和密碼。

您可以透過 2 種方式提供網域來驗證 NTLM 代理

  • http.proxyUser 系統屬性設定為 網域/使用者名稱 等值。

  • 透過 http.auth.ntlm.domain 系統屬性提供驗證網域。