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

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

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

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

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

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

版本:更新父

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

 $ mvn versions:update-parent -DallowSnapshots=true 

您可以从TeamCity执行此命令,然后将更改提交到pom。 构建Y时肯定会触发这个,你甚至可以提供版本(它必须是listrange ):

 $ mvn versions:update-parent -DparentVersion=[1.0.0,1.0.1] //or [1.0.0,1.5.0) 

文档

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

  • 版本:更新父

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

  • 版本:设置

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

  • 版本:已提交

删除pom.xml.versionsBackup

  • 版本:更新子模块

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