为部署配置 Maven 设置
Configure Maven settings for deployment
我想将工件从 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>
项目 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 吗?
是否有此类工作流程的分步指南?
您可以在 settings.xml
上的 profile 中声明一个 属性,并在 <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
您可以使用 activation 来避免 -P build
参数。
我想将工件从 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>
项目 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 吗?
是否有此类工作流程的分步指南?
您可以在 settings.xml
上的 profile 中声明一个 属性,并在 <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
您可以使用 activation 来避免 -P build
参数。