【发布时间】:2015-03-25 03:33:28
【问题描述】:
我有一个多模块项目,所有模块都有一个共同的父 pom 和一个聚合器/构建 pom。我正在尝试使用 maven-versions-plugin 更新/设置我所有模块的版本,但它一直跳过子模块。
项目布局: - common/pom.xml(构建 pom) - common/superpom/pom.xml(父 pom) - module1/pom.xml (module1 pom) - module2/pom.xml (module2 pom)
common/pom.xml:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.bic</groupId>
<artifactId>builder</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Builder</name>
<modules>
<module>../module1</module>
<!-- POM Component Versionning -->
<module>../module2</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.1</version>
</plugin>
</plugins>
</build>
</project>
我已经尝试将插件添加到构建 pom (common/pom.xml) 中,然后调用:
mvn versions:set -DnewVersion=999999
Maven 列出了它在子模块中找到的所有道具,所以我知道它正在正确解析它们:
Props: {project.version=50, project.parent.version=1.0-SNAPSHOT, project.parent.groupId=com.bic, project.artifactId=module1, project.groupId=com.bic, project.parent.artifactId=common}
Props: {project.version=50, project.parent.version=1.0-SNAPSHOT, project.parent.groupId=com.bic, project.artifactId=module2, project.groupId=com.bic, project.parent.artifactId=common}
但它实际上并没有更新任何模块 pom 的版本,这是我想要做的。
[INFO] Reactor Summary:
[INFO]
[INFO] Module1 ........................................ SKIPPED
[INFO] Module2 ........................................ SKIPPED
[INFO] Builder ........................................ SUCCESS [ 2.037 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.975 s
[INFO] Finished at: 2015-01-26T11:48:11-05:00
[INFO] Final Memory: 24M/44M
[INFO] ------------------------------------------------------------------------
update-child-modules 目标不允许我为子模块显式设置版本号。
我是不是用错了插件?
【问题讨论】:
-
@Mysterion - 我已经阅读了那个 SO 帖子,如果你注意到这个帖子,我的问题仍然没有明确的答案。我仍然不确定如何更新子模块。