我正在开发一个项目,用于自动发布大量相互依赖的模块的 Maven。首先,任务涉及获取内部依赖项的最新版本。而不是以每个项目在需要之前构建的方式来排序构建。希望这种组合能让我实现一键批量发布的目标。
但是我最大的问题是: 我们时不时地分支项目,并从该分支向 Nexus 存储库管理器发布/快照。显然,因为 groupId 和 ArtifactId 与主干相同 - 来自主干的快照/发布和来自分支的快照/发布最终位于 nexus 中的同一位置。
在我们的项目 A 的主干版本为 1.1.x 的情况下 项目B→项目A版本1.1.x 因此,如果我使用版本插件来获取 B 的最新依赖项,我将获得最新的。 (完美)
但是,如果我稍后使用版本 1.2.0 分支 ProjectA 并添加我不希望 ProjectB 接受或可能会破坏它的更改。 现在,下次我运行projectB并使用版本插件获取最新版本时,该插件将获取ProjectA的分支版本(1.2.0),因为它在数字上是最新的。就这样,projectB 构建失败了。
到目前为止,我已经尝试向 Artifact 添加一个分类器来区分两者,但后来我意识到该插件不会对分类器起作用。
这让我非常沮丧,并且会感谢任何提示或建议
最佳答案
简单地为分支使用正确/不同的 Artifact 名称。您可以自动创建正确的 Artifact 名称 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
关于maven - 获取最新依赖项时区分主干中的 Maven 版本/快照与分支中的版本/快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15444124/