我想为我的项目设置发行版本。我为所有模块使用聚合体。每个模块的父母不是前面提到的聚合体。更新聚合根不是父系统pom的多模块Maven项目中模块的版本号
我的问题不同于Updating version numbers of modules in a multi-module Maven project问题,那里的聚合pom也是父pom。
的总pom.xml的是:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>aggregate</artifactId>
<version>0.0.1</version>
<packaging>pom</packaging>
<modules>
<module>module1</module>
</modules>
</project>
凡模块1 pom.xml的是:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>module-1</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>com.example</groupId>
<artifactId>parent1</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../../parent1/pom.xml</relativePath>
</parent>
</project>
当我执行:
mvn versions:set -DnewVersion=0.0.1
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] module-1
[INFO] aggregate
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building aggregate 0.0.1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- versions-maven-plugin:2.3:set (default-cli) @ aggregate ---
[INFO] Searching for local aggregator root...
[INFO] Local aggregation root: C:\Users\maxim.kirilov\workspace\maven-games\aggregate
[INFO] Processing change of com.example:aggregate:0.0.1 -> 0.0.1
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] module-1 ........................................... SKIPPED
[INFO] aggregate .......................................... SUCCESS [ 0.962 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
为什么模块1被跳过?我读了一些文章,建议分别为每个模块调用maven set version命令,maven是否支持更清晰的解决方案?
我没有在文档中找到任何类似'autoVersionSubmodules'的配置?这只在[maven-release-plugin](http://maven.apache.org/maven-release/maven-release-plugin/prepare-mojo.html)中可用,但不在[versions-maven-plugin]( http://www.mojohaus.org/versions-maven-plugin/) – khmarbaise
建议您在第二个链接上进一步阅读,如mvn-N版本:update-child-modules可能对您有所帮助。截至目前,您可以忽略autoVersionSubmodule,但我已经使用了两个插件:releasr和带有上述代码的版本,它工作得很酷 – LNP
autoVersionSubmodule不是一个配置项,它在versions-maven-plugin中可用。它仅在maven-release-plugin中可用。从版本 - maven插件它将被简单地忽略。 – khmarbaise