我有一个Maven多模块项目,并且我想使用脚本将开发版本更新为给定的值。聚合器POM只是一个聚合器,子模块不继承它。这很重要,因为所有构件都继承自其他POM文件。这是我的结构:
aggregator/
--projectA
--projectB
另外,projectB
依赖于 projectA
的 Maven 包。
首先我尝试了:
mvn -DnewVersion=0.28-SNAPSHOT -DupdateMatchingVersions=true versions:set
它只更新了aggregator
项目的版本。
如果我运行Maven发布流程,它会正确地更新projectB
对projectA
的依赖关系,以使用新的开发版本进行发布构建。因为发布过程可以很好地处理这个问题,所以我认为使用发布插件可能会解决我的问题。
所以我尝试了以下操作:
mvn -DdevelopmentVersion=0.28-SNAPSHOT -DautoVersionSubmodules=true --batch-mode release:update-versions
这更新了我所有的子项目。但是它没有更新projectB对projectA的依赖版本。
有什么简单的方法可以更新我的项目中所有开发版本,包括projectB对projectA的依赖关系?
updateMatchingVersions
的默认值被改变了?在 mvn 3.2.5 中,默认值为true
,而我想要相反的结果。mvn versions:set
更改了比我想要的更多的版本。我一直苦思冥想,直到找到了这个答案! - Olaf Seibert