Running Maven behind an HTTP proxy server
Most organizations do not allow devices in their network to access the Internet directly for security and other reasons. In such cases, typically, a proxy server comes into picture. The proxy server details are specified in the browser or any other location where access to the Internet is required.
How to do it...
Let's start running Maven behind an HTTP proxy server, by performing the following steps:
- Create a
settings.xml
file in the.m2
folder in yourHOME
directory, if it does not exist already. - Add the following code within the
settings
tag:<proxies> <proxy> <id>myproxy</id> <active>true</active> <protocol>http</protocol> <host>proxy.myorg.com</host> <port>8080</port> <username>proxyuser</username> <password>somepassword</password> <nonProxyHosts>*.myorg.com </nonProxyHosts> </proxy> </proxies>
If the proxy server does not need authentication, the username
and password
tags can be omitted.
The nonProxyHosts
tag allows you to specify locations that can be accessed directly (for instance, your intranet). This can be skipped if not relevant.
How it works...
Maven needs Internet access to download plugins and dependencies. When Maven runs, it reads the user's settings.xml
file, if it exists. It checks for any active proxy settings and applies the same.
Maven uses the values in the proxy settings to download any artifacts from the repository. If there are no artifacts to be downloaded, then these values are not used.
Note
The HTTP proxy server may work only in your organization's network. If you are running Maven from a different network, you may want to turn off the HTTP proxy server. This can be done by setting the active
tag to false
in the preceding code.