How to pass Maven settings via environmental vars

Yes, you can do this in two ways:

  • passing properties in command line, using variables. For example, you can use in your settings.xml something like this:
<servers>
    <server>
      <id>deploymentRepo</id>
      <username>${server.username}</username>
      <password>${server.password}</password>
    </server>
</servers>

And in command line, pass these variables in this way:

mvn clean package -Dserver.username=yourusername -Dserver.password=yourpassword
  • exporting environments properties. For example, if you export (in linux, something like export SERVER_USERNAME=yourusername) SERVER_USERNAME and SERVER_PASSWORD variables, you can use like this:
<servers>
    <server>
      <id>deploymentRepo</id>
      <username>${env.SERVER_USERNAME}</username>
      <password>${env.SERVER_PASSWORD}</password>
    </server>
</servers>

For more information about propeties, see the reference documentation.

Tags:

Maven