更新maven项目模块中的父版本

San*_*ndy 5 java teamcity pom.xml maven

我有一个奇怪的场景,我有一个项目"Y",它有一个模块"X"和其他一些模块.

X是项目Y的一部分,但它不作为该项目的模块链接.因此,每次发布更新版本的Y时,都需要手动更新X中的父版本.

我需要以下列方式更新Y项目:a)每次发布Y项目时,X中的父项目版本应由TeamCity自动更新(与其他模块类似)

b)X不得是Y分布的一部分

c)一旦部署在TeamCity中,它就不应该从X运行测试(它们应该使用Integration测试和发布版本运行)

ale*_*xbt 11

版本:更新父

如果在项目的根目录中打开终端,则X可以使用versions:update-parent将其父版本更新为latest:

$ mvn versions:update-parent -DallowSnapshots=true
Run Code Online (Sandbox Code Playgroud)

您可以从TeamCity执行此命令,然后将更改提交到pom.这当然可以在Y构建时触发,甚至可以提供版本(它必须是a list或a range):

$ mvn versions:update-parent -DparentVersion=[1.0.0,1.0.1]    //or [1.0.0,1.5.0)
Run Code Online (Sandbox Code Playgroud)

文档

请参阅versions-maven-plugin的文档,尤其是:

  • 版本:更新父

更新项目的父节,以便它引用最新的可用版本.例如,如果您使用公司根POM,如果您需要确保使用最新版本的公司根POM,则此目标可能会有所帮助.

  • 版本:设置

可用于从命令行设置项目版本.

  • 版本:已提交

删除pom.xml.versionsBackup

  • 版本:更新子模块

更新项目的子模块的父节,以使版本与当前项目的版本匹配.例如,如果您有一个聚合器pom,它也是它聚合的项目的父级,并且子级和父级版本不同步,则此mojo可以帮助修复子模块的版本.(注意,如果您的项目因为版本不匹配而无法构建,那么您可能需要使用-N选项调用Maven以运行此目标.

  • 有什么办法可以将父版本更新到特定版本吗?不是一个范围! (2认同)