maven - 获取最新依赖项时区分主干中的 Maven 版本/快照与分支中的版本/快照

标签 maven maven-2 maven-3 nexus artifactory

我正在开发一个项目,用于自动发布大量相互依赖的模块的 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/

相关文章:

Android-Maven 安装时无法执行目标 org.codehaus.mojoto

maven-2 - 我只需要一个依赖模块,但不需要它的依赖项

java - Maven 中提供的和运行时的传递范围

java - WAR打包前使用Maven Replacer Plugin

maven - liquibase-maven-plugin 无法执行目标

java - 如何在 Intellij 中将 "java"文件夹创建到 Maven webapp 项目中?

maven - 如何从本地 Maven 仓库中删除项目 Artifact ?

java - 为什么liquibase无法解析db.changelog类路径?

java - 限制 Java maven 插件配置参数

java - maven安装时出现‘系统找不到指定的路径’错误