Configure proxy in Maven | Settings.xml | pom.xml | Command lines

Introduction

When working with Maven, a popular build automation tool for Java projects, it is essential to configure proxy settings to ensure seamless connectivity to external repositories and dependencies. In this article, we will explore how to set up proxy settings in Maven’s pom.xml or settings.xml files. These configurations allow Maven to route network traffic through a proxy server, enabling reliable access to remote resources.

Understanding the Need for Proxy Settings

Proxy servers act as intermediaries between clients and the Internet. They enhance security, provide caching, and offer network access control. Organizations often employ proxy servers to regulate internet usage, monitor traffic, and enforce security policies. When developing with Maven within such environments, configuring proxy settings becomes crucial to facilitate access to external resources.

Setting Up Proxy Settings in pom.xml

In order to Configure the proxy in Maven the pom.xml file, which serves as the project’s configuration file, can include proxy settings within the <build> section. Follow these steps to configure proxy settings in pom.xml:

  1. Open the project’s pom.xml file.
  2. Locate the <build> section.
  3. Add the <proxy> element within the <build> section, specifying the proxy server details.

Example

<project>
  <!-- Other project details -->
  <build>
    <plugins>
      <!-- Other plugins -->
    </plugins>
    <proxy>
      <id>proxy-id</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>proxy.example.com</host>
      <port>8080</port>
      <!-- Additional proxy settings if required -->
    </proxy>
  </build>
</project>

Note: Remember to replace the placeholder values (e.g., proxy-id, proxy.example.com, 8080) with the appropriate values for your proxy server.

Configure proxy in Maven in settings.xml

Maven’s settings.xml file, located in the ~/.m2/ directory, allows you to configure global settings for Maven. To set up proxy settings in settings.xml, follow these steps:

  1. Open the settings.xml file.
  2. Locate the <proxies> section.
  3. Add an <proxy> element within the <proxies> section, specifying the proxy server details.

Note: If <proxies> If the section is not present already then add one as per the below example.

<settings>
  <!-- Other settings -->
  <proxies>
    <proxy>
      <id>proxy-id</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>proxy.example.com</host>
      <port>8080</port>
      <!-- Additional proxy settings if required -->
    </proxy>
  </proxies>
</settings>

Again, replace the placeholder values (e.g., proxy-id, proxy.example.com, 8080) with your actual proxy server details.

Note: The above examples demonstrate the configuration for an HTTP proxy. If you need to configure an HTTPS proxy, replace the protocol element with https and ensure the appropriate port is specified.

Configuring Proxy Settings via Command Line

To configure proxy settings in Maven using the command line, follow these steps:

  1. Open your terminal or command prompt.
  2. Set the proxy server details as environment variables. Use the following commands, replacing the placeholders with the appropriate values for your proxy server

For Windows Command Prompt:

set MAVEN_OPTS=-Dhttp.proxyHost=proxy.example.com -Dhttp.proxyPort=8080 -Dhttps.proxyHost=proxy.example.com -Dhttps.proxyPort=8080

For Windows PowerShell

$env:MAVEN_OPTS="-Dhttp.proxyHost=proxy.example.com -Dhttp.proxyPort=8080 -Dhttps.proxyHost=proxy.example.com -Dhttps.proxyPort=8080"

For Unix/Linux:

export MAVEN_OPTS="-Dhttp.proxyHost=proxy.example.com -Dhttp.proxyPort=8080 -Dhttps.proxyHost=proxy.example.com -Dhttps.proxyPort=8080"

Note: Adjust the protocol (http or https), host (proxy.example.com), and port (8080) values according to your proxy server configuration.

Run your Maven command, such as mvn clean install, in the same terminal or command prompt window. Maven will utilize the proxy settings defined in the environment variables.

Conclusion

Configuring proxy settings in Maven’s pom.xml or settings.xml files is essential for seamless connectivity to remote repositories and dependencies.

By following the steps outlined in this article, you can easily set up proxy settings in your Maven project, allowing Maven to route network traffic through the proxy server. With the correct proxy configuration, your Maven builds will execute smoothly, even within corporate or restricted network environments.

Leave a Comment