我有一个带有构建/聚合pom的多模块maven项目。在我的项目中,我有一个共同的父pom,其设置了版本号,并且所有子模块都继承了父版本(即:任何子poms中都没有版本信息)。但是,构建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。
我应该从哪个模块调用版本:设定目标?是否有一步到位的解决方案让父母和所有孩子自动更新他们的版本?