我目前在一个为很多人定义规则的环境中工作。我们目前使用 Hudson 和 Artifactory,我想评估切换到 Jenkins 和 Nexus 是否值得迁移成本(但这不是问题)。
为了评估它,我在本地设置了 Maven、Jenkins 和 Nexus,我尝试找到一个设置来使用之前的设置,以便我可以比较解决方案。这里的问题是:
- 当我使用现有的 POM 并通过 Jenkins 构建和部署它时,它会自动部署到我们的旧环境中。
然后我尝试在 Maven 的文件中定义该
deploymentManagement
部分.settings
,但这是不允许的(请参阅配置 Maven,那里注意:安装和用户配置不能用于添加共享项目信息——例如,设置或公司范围。
- 我当然可以复制整个文件,并更改每个 POM 中的 distributionManagement,但我想在不同的安装中使用相同的(不是复制的)示例。
我们当前的根 POM 包含以下部分:
<distributionManagement>
<repository>
<uniqueVersion>false</uniqueVersion>
<id>company-central</id>
<name>Company central maven respository</name>
<url>https://company.com/artifactory/libs-releases</url>
</repository>
<snapshotRepository>
<id>company-snaps</id>
<name>company-snapshots</name>
<url>https://company.com/artifactory/libs-snapshots</url>
</snapshotRepository>
<downloadUrl>https://company.com/artifactory/libs-releases</downloadUrl>
</distributionManagement>
使用相同 POM 的最简单方法是什么,但要将其部署到不同的存储库管理器?
PS:我已经阅读了针对不同部署场景的设置 maven pom 文件并且不喜欢它(在我的上下文中),将 Maven 工件部署到具有不同设置的多个存储库确实是一个不同的问题。maven 中的多个部署是一种有趣的方法,但我必须为此目的修改很多 POM。