Eri*_* B. 10 java version maven
我有一个多模块项目,所有模块都有一个共同的父pom和一个聚合器/构建pom.我正在尝试使用maven-versions-plugin来更新/设置我所有模块的版本,但它一直在跳过子模块.
项目布局: - common/pom.xml(build pom) - common/superpom/pom.xml(父pom) - module1/pom.xml(module1 pom) - module2/pom.xml(module2 pom)
通用/ 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>
Run Code Online (Sandbox Code Playgroud)
我尝试将插件添加到构建pom(common/pom.xml)然后调用:
mvn versions:set -DnewVersion=999999
Run Code Online (Sandbox Code Playgroud)
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}
Run Code Online (Sandbox Code Playgroud)
但它实际上并没有更新任何模块poms的版本,这正是我想要做的.
[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] ------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
而update-child-modules目标不允许我显式地设置了子模块版本号.
我不正确地使用插件吗?
无法弄清楚如何直接使用 versions-maven-plugin 来完成此操作,所以我最终手动完成了它。
find . -name "pom.xml" -exec mvn versions:set -DnewVersion=1.0.3-SNAPSHOT -f {} \;
Run Code Online (Sandbox Code Playgroud)
最终找到了我的子模块的所有 pom 并更新了每个中的版本号。绝对比在父级上使用插件慢,因为它的设计目的是完成,但功能齐全。