我有一个多模块的maven项目。我们打算把所有这些模块放在一起。但到目前为止,我在每个模块pom.xml中完成了如下所示的硬编码版本

<parent>
    <artifactId>xyz-application</artifactId>
    <groupId>com.xyz</groupId>
    <version>2.50.0.g</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.xyz</groupId>
<artifactId>xyz-Library</artifactId>
<version>2.50.0.g</version>

主父模块具有下面的配置

<modelVersion>4.0.0</modelVersion>
<groupId>com.xyz</groupId>
<artifactId>xyz-application</artifactId>
<version>2.50.0.g</version>
<packaging>pom</packaging>

当前回答

最简单的方法是将每个pom.xml中的版本更改为任意版本。然后检查依赖管理是否使用了这个模块中使用的正确版本的模块!例如,如果你想增加一个tow模块项目的版本控制,你必须像这样做:

在公子模块中:

    <parent>
       <artifactId>A-application</artifactId>
       <groupId>com.A</groupId>
       <version>new-version</version>
    </parent>

在父模块中:

<groupId>com.A</groupId>
<artifactId>A-application</artifactId>
<version>new-version</version>

其他回答

我在找这个:

<properties>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.source>1.8</maven.compiler.source>
</properties>

最简单的方法是将每个pom.xml中的版本更改为任意版本。然后检查依赖管理是否使用了这个模块中使用的正确版本的模块!例如,如果你想增加一个tow模块项目的版本控制,你必须像这样做:

在公子模块中:

    <parent>
       <artifactId>A-application</artifactId>
       <groupId>com.A</groupId>
       <version>new-version</version>
    </parent>

在父模块中:

<groupId>com.A</groupId>
<artifactId>A-application</artifactId>
<version>new-version</version>

如果你想完全自动化这个过程(即你想增加版本号,而不需要知道当前版本号是什么),你可以这样做:

mvn build-helper:parse-version versions:set -DnewVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.nextIncrementalVersion} versions:commit

版本:update-child-modules听起来像是您正在寻找的。您可以像前面提到的那样执行versions:set,但这是更新父版本号的一种轻量级方式。对于子模块,我认为应该删除<version>定义,因为它们将继承父模块的版本号。

上面给出的解决方案在很长一段时间内都适用于我们:

mvn versions:set -DnewVersion=2.50.1-SNAPSHOT

然而,昨天它停止工作了,我们发现它是由于最近在版本maven插件中的一个错误

我们(临时)的解决方法是修改父/pom.xml文件,如下所示:

--- jackrabbit/oak/trunk/oak-parent/pom.xml 2020/08/13 13:43:11 1880829
+++ jackrabbit/oak/trunk/oak-parent/pom.xml 2020/08/13 15:17:59 1880830
@@ -329,6 +329,13 @@
           <artifactId>spotbugs-maven-plugin</artifactId>
           <version>3.1.11</version>
         </plugin>
+        
+        <plugin>
+          <groupId>org.codehaus.mojo</groupId>
+          <artifactId>versions-maven-plugin</artifactId>
+          <version>2.7</version>
+        </plugin>
+