如何通过环境变量传递Maven设置

Jos*_*nez 12 maven

在我们的setting.xml文件中,我们有以下内容:

<servers>
    <server>
      <id>deploymentRepo</id>
      <username>repouser</username>
      <password>repopwd</password>
    </server>
</servers>
Run Code Online (Sandbox Code Playgroud)

是否可以通过环境变量而不是settings.xml传递这些设置(或它们的等效设置)?

Bru*_*sar 23

是的,你可以通过两种方式做到这一点:

  • 使用变量在命令行中传递属性.例如,您可以使用settings.xml以下内容:
<servers>
    <server>
      <id>deploymentRepo</id>
      <username>${server.username}</username>
      <password>${server.password}</password>
    </server>
</servers>
Run Code Online (Sandbox Code Playgroud)

在命令行中,以这种方式传递这些变量:

mvn clean package -Dserver.username=yourusername -Dserver.password=yourpassword
Run Code Online (Sandbox Code Playgroud)
  • 导出环境属性.例如,如果你导出(在linux中,类似的东西export SERVER_USERNAME=yourusername)SERVER_USERNAMESERVER_PASSWORD变量,你可以像这样使用:
<servers>
    <server>
      <id>deploymentRepo</id>
      <username>${env.SERVER_USERNAME}</username>
      <password>${env.SERVER_PASSWORD}</password>
    </server>
</servers>
Run Code Online (Sandbox Code Playgroud)

有关propeties的更多信息,请参阅参考文档.