在我们的setting.xml文件中,我们有以下内容:
<servers>
<server>
<id>deploymentRepo</id>
<username>repouser</username>
<password>repopwd</password>
</server>
</servers>
是否可以通过环境变量而不是settings.xml传递这些设置(或等效设置)?
答案 0 :(得分:20)
是的,您可以通过两种方式执行此操作:
settings.xml
中使用以下内容:<servers>
<server>
<id>deploymentRepo</id>
<username>${server.username}</username>
<password>${server.password}</password>
</server>
</servers>
在命令行中,以这种方式传递这些变量:
mvn clean package -Dserver.username=yourusername -Dserver.password=yourpassword
export SERVER_USERNAME=yourusername
)SERVER_USERNAME
和SERVER_PASSWORD
变量,您可以这样使用:<servers>
<server>
<id>deploymentRepo</id>
<username>${env.SERVER_USERNAME}</username>
<password>${env.SERVER_PASSWORD}</password>
</server>
</servers>
有关propeties的更多信息,请参阅reference文档。
答案 1 :(得分:0)
您可以从命令行传递值
mvn -Dvar = someValue -Dtest.username = xyz install
在POM文件中,您可以将系统变量(在命令行或pom中指定)称为$ {var},将环境变量称为$ {env.myVariable},即$ {test.username}
您还可以参考sure-fire插件doc
答案 2 :(得分:0)
您可以传递包含凭据的URL,例如
mvn deploy -DaltReleaseDeploymentRepository=myrepo::https://user:pass@server/repo
请参阅https://maven.apache.org/plugins/maven-deploy-plugin/deploy-mojo.html