我想将工件从Jenkins部署到Nexus到不同的存储库(例如builds-all
,builds-verified
,releases
)。问题是我想在项目POM文件中保持最小配置。我的设置文件现在看起来像:
<servers>
<server>
<id>orion-nexus</id>
<username>admin</username>
<password>password</password>
</server>
</servers>
<localRepository>~/.m2/repository</localRepository>
<profiles>
<!-- Deployment configuration for CI builds for mainline -->
<profile>
<id>build</id>
<repositories>
<repository>
<id>builds-all</id>
<url>http://orion-nexus:8081/</url>
<snapshots>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
Project POM:
<distributionManagement>
<repository>
<id>orion-nexus</id>
<layout>default</layout>
<url><!-- how to avoid explicit URL? --></url>
</repository>
</distributionManagement>
我想像mvn -B -P build clean install deploy
一样运行部署。但是,我不明白如何避免在分发管理部分设置显式URL。我可以在设置文件中设置变量并将其传播到我的POM吗?
是否有针对此类工作流程的分步指南?
答案 0 :(得分:1)
您可以在settings.xml
的{{3}}内声明属性,并在<distributionManagement/>
配置中使用其名称。
<强>的settings.xml 强>
<profiles>
<profile>
<id>distmgt</id>
<properties>
<distUrl>scp://...</distUrl>
<properties/>
</profile>
</profiles>
<强>的pom.xml 强>
<distributionManagement>
<repository>
<id>orion-nexus</id>
<layout>default</layout>
<url>${distUrl}</url>
</repository>
</distributionManagement>
最后
mvn -P distmgt clean deploy
您可以使用profile来避免-P build
参数。