通过代理访问网络

配置代理(例如,用于下载依赖项)是通过标准 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 身份验证,您可能需要提供身份验证域以及用户名和密码。

您可以通过两种方式提供用于对 NTLM 代理进行身份验证的域

  • http.proxyUser 系统属性设置为类似于 domain/username 的值。

  • 通过 http.auth.ntlm.domain 系统属性提供身份验证域。