关于 Maven 版本插件
Posted
技术标签:
【中文标题】关于 Maven 版本插件【英文标题】:Regarding Maven Versions Plugin 【发布时间】:2014-08-01 15:05:46 【问题描述】:我正在尝试使用 Maven 版本插件将所有子 POM 升级到父版本并执行父 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 被构建。
我是否必须明确指定在某个阶段构建子模块?我错过了什么?
【问题讨论】:
【参考方案1】:您可以像这样使用 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>
(如果版本没有改变设定的目标应该被忽略。)
【讨论】:
Rob 我不想每次都更新 MVN 命令。我使用 jenkins 来构建战争,并且构建是由不同的团队处理的,他们对工件的版本一无所知。所以这对我不起作用。我正在 POM 文件中寻找用于版本升级的内容,而不是来自命令行。以上是关于关于 Maven 版本插件的主要内容,如果未能解决你的问题,请参考以下文章