Accessing the web through a proxy
Configuring a proxy (for downloading dependencies, for example) is done via standard JVM system properties.
These properties can be set directly in the build script.
For example, setting the HTTP proxy host would be done with System.setProperty('http.proxyHost', 'www.somehost.org').
Alternatively, the properties can be specified in gradle.properties.
Example 1: Configuring an HTTP proxy using 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
There are separate settings for HTTPS.
Example 2: Configuring an HTTPS proxy using gradle.properties:
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
There are separate settings for SOCKS.
Example 3: Configuring a SOCKS proxy using gradle.properties:
systemProp.socksProxyHost=www.somehost.org
systemProp.socksProxyPort=1080
systemProp.java.net.socks.username=userid
systemProp.java.net.socks.password=password
You may need to set other properties to access other networks.
Helpful references:
NTLM Authentication
If your proxy requires NTLM authentication, you may need to provide the authentication domain as well as the username and password.
There are 2 ways that you can provide the domain for authenticating to a NTLM proxy:
-
Set the
http.proxyUsersystem property to a value likedomain/username. -
Provide the authentication domain via the
http.auth.ntlm.domainsystem property.