我有一个带有构建/聚合 pom 的多模块 maven 项目。在我的项目中,我有一个公共的父 pom,它设置了版本号,所有子模块都继承父版本(即:任何子 pom 中都没有版本信息)。但是,构建 pom 有它自己的版本号,并且不继承父 pom。
Project
|- InfoJava
|- InfoWebApp
|- InfoMavenCommon (parent pom)
|- InfoBuild (build pom - may have a unique version number and does not inherit InfoMavenCommon)
|- InfoEar
我正在尝试更新项目的构建版本(即:父版本)。通过更新父版本,我还需要更新所有子模块对父模块的引用。前任:
<parent>
<groupId>com.webinfo</groupId>
<artifactId>InfoMavenCommon</artifactId>
<version>3.9.1</version>
<relativePath>../InfoMavenCommon</relativePath>
</parent>
但是,我不确定如何正确使用版本插件。我发现这个工作的唯一方法是运行以下命令:
Project/InfoMavenCommon$ mvn versions:set -DnewVersion=3.9.0
它会更新父 pom 版本,但不会递归到子模块中,然后
Project/InfoMavenBuild$ mvn -N versions:update-child-modules
这似乎不“正确” - 两个步骤,并没有真正按照应有的方式使用 update-child-modules。
我应该从哪个模块调用版本:设置目标?是否有让父母和所有孩子自动更新他们的版本的一站式解决方案?