我在我的多模块项目的父POM中有这个dependencyManagement:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>A</artifactId>
<version>3.5</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>B</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>C</artifactId>
<version>1.1</version>
</dependency>
</dependencyManagement>
这在每个子模块POM:
模块A:
<parent>
<groupId>${project.groupId}</groupId>
<artifactId>ParentId</artifactId>
<version>1.0</version>
</parent>
<artifactId>A</artifactId>
<version>3.5</version>
<packaging>nbm</packaging>
模块B:
<parent>
<groupId>${project.groupId}</groupId>
<artifactId>ParentId</artifactId>
<version>1.0</version>
</parent>
<artifactId>B</artifactId>
<version>1.0</version>
<packaging>nbm</packaging>
模块C:
<parent>
<groupId>${project.groupId}</groupId>
<artifactId>ParentId</artifactId>
<version>1.0</version>
</parent>
<artifactId>C</artifactId>
<version>1.1</version>
<packaging>nbm</packaging>
每次我们想要发布时,我们都必须检查每个子模块中的版本是否与dependencyManagement中的版本相同(每次更改内容时都要求开发人员更改两个版本的版本)。 / p>
有一些方法可以检查版本是否自动相同?如果版本不一样,我怎么能自动更改它们?
答案 0 :(得分:0)
parent pom discovery-ui :
<parent>
<groupId>${project.groupId}</groupId>
<artifactId>discovery-ui</artifactId>
<version>1.0</version>
</parent>
<properties>
<A.version>3.5</A.version>
<B.version>1.0</B.version>
<C.version>1.1</C.version>
<properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>A</artifactId>
<version>${A.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>B</artifactId>
<version>${B.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>C</artifactId>
<version>${C.version}</version>
</dependency>
</dependencyManagement>
Module A:
<parent>
<groupId>${project.groupId}</groupId>
<artifactId>discovery-ui</artifactId>
<version>1.0</version>
</parent>
<artifactId>A</artifactId>
<version>${A.version}</version>
<packaging>nbm</packaging>
答案 1 :(得分:0)
你试过maven versions plugin吗?看起来processParent
参数应该可以解决问题。不过,我还没有测试过。
mvn versions:set -DgenerateBackupPoms=false -f A/pom.xml -DnewVersion=NEW_VERSION -DartifactId=A -DprocessParent=true
答案 2 :(得分:0)
您已经在 <dependencyManagement>
部分下的父 POM 中声明了依赖项及其版本。
这样你只需要在你的子POM中声明GroupID:ArtifactID(没有版本,它会从父POM继承)