在获取最新依赖项时,区分maven版本/快照与主干相比而不是分支中的版本

时间:2013-03-16 00:24:06

标签: maven maven-2 maven-3 nexus artifactory

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

然而,我最大的问题是: 我们不时分支项目,我们从该分支机构向Nexus repo manager发布/快照。显然,因为groupId和ArtifactId与来自主干的主干 - 快照/版本相同,而来自分支的一个最终位于nexus中的相同位置。

在我们拥有带有trunk版本1.1.x的projectA的场景中 而projectB→projectA版本1.1.x 因此,如果我使用version-plugin获取B的最新依赖项,我将获得最新的。 (完美)

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

到目前为止,我尝试在工件中添加一个分类器来区分这两者,但我后来意识到插件不会对分类器起作用。

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

2 个答案:

答案 0 :(得分:1)

简单地为分支使用正确/不同的工件名称。您可以自动创建适当的工件名称Maven Release plugin

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

答案 1 :(得分:1)

解决此问题的典型方法是使用分支名称作为版本分类器,该方法适用于我目前所见的所有场景。你有什么问题吗?