我正在尝试使用Maven Versions Plugin将所有子POM升级到父版本并执行父pom中所有子模块的构建.Pom文件看起来像这样
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.build.pom</groupId>
<artifactId>basepom</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<modules>
<module>
<module>../Common</module>
<module>
<modules>
<!-- . . . -->
</project>
<parent>
<artifactId>basepom</artifactId>
<groupId>com.build.pom</groupId>
<version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.child.common</groupId>
<artifactId>common</artifactId>
<packaging>jar</packaging>
<name>Common</name>
<description>Common Jar</description>
现在,如果我使用Eclipse中的命令在基础POM上运行Maven构建
mvn clean install
如果我将basepom版本更新为2.0并使用版本插件命令,那么子模块正在构建正确
mvn clean -N versions:update-child-modules install
版本正在更新,但是子模块没有构建。只有基础pom才能构建。
我是否必须明确指定在某个阶段构建子模块?我错过了什么?。
答案 0 :(得分:0)
不是手动设置父版本,而是可以像这样使用set-goal:
versions:set -DnewVersion=XXX -DgenerateBackupPoms=false install
这会更新父级和所有子级的版本,然后应该执行安装。
修改强>
要将参数和执行移动到pom,请尝试这样(未测试):
<plugin>
<artifactId>maven-versions-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>set</goal>
</goals>
<configuration>
<newVersion>XXX</newVersion>
<generateBackupPoms>false</generateBackupPoms>
</configuration>
</execution>
</executions>
</plugin>
(如果版本没有改变,则应忽略设定的目标。)