2

我正在致力于为大量相互依赖的模块自动化 maven 发布的项目。首先,该任务涉及获取内部依赖项的最新版本。比以一种在需要之前构建每个项目的方式对构建进行排序。希望这种组合能让我实现一键批量发布的目标。

但是我最大的问题是:我们不时分支项目,并且我们从该分支向 Nexus 存储库管理器发布/快照。显然,因为 groupId 和 ArtifactId 与主干相同 - 来自主干的快照/发布和来自分支的快照/发布最终位于 nexus 中的同一位置。

在我们有一个主干版本为 1.1.x 的 projectA 和 projectB → projectA 版本 1.1.x 的场景中,所以如果我使用 version-plugin 获取 B 的最新依赖项,我将获得最新的。(完美的)

但是,如果我稍后使用版本 1.2.0 分支 ProjectA 并添加我不希望 projectB 获取或可能破坏它的更改。现在下次我运行 projectB 并使用版本插件获取最新的,该插件将获取 ProjectA 的分支版本(1.2.0),因为它在数字上是最新的。就这样,projectB 构建失败了。

到目前为止,我已经尝试向工件添加分类器以区分两者,但后来我意识到插件不会对分类器起作用。

这让我非常沮丧,并会感谢任何提示或建议

4

2 回答 2

1

简单地为分支使用正确/不同的工件名称。您可以自动创建正确的工件名称Maven 发布插件

mvn --batch-mode release:branch -DbranchName=my-branch-1.2 -Dproject.rel.org.myCompany:projectA=1.2 -Dproject.dev.org.myCompany:projectA=2.0-SNAPSHOT
于 2013-03-17T10:35:42.697 回答
1

解决这个问题的典型方法是使用分支名称作为版本分类器,这种方法适用于我目前看到的所有场景。你遇到了什么问题?

于 2013-03-18T16:55:45.067 回答