我有以下 Maven 项目结构
pom.xml (parent)
pom.xml (extends parent, aggregates modules)
|
|--pom.xml (extends aggregate)
现在,当我mvn install
升级父版本并mvn versions:update-parent
在聚合项目上运行时,我会首先更新聚合父版本并聚合继承版本,然后更新其模块的父版本以升级聚合,再次继承版本。这对于聚合项目只是随后使用相同的 Maven 命令构建所有模块这一事实非常有意义。
但是,Maven 版本插件并非如此。该示例仅升级聚合父级,但保持其模块(继承它)不变。这是插件中的错误吗?如何解决这个问题?
我知道我也可以mvn versions:set
在聚合中运行以成功更新模块,但在这种情况下,我必须指定版本(而不是使用最新的父级)。我知道我也可以编写一个脚本来解决这个问题,但这很脏。
那么,如何使用 Maven 版本插件正确升级版本,其中项目利用继承、聚合并跨越多个存储库,并使用父 POM 作为版本声明的单一来源?