我正在努力更新模块版本。 我的项目非常庞大(大约有50个模块),但我将简化此示例,以供参考。
-moduleA
-moduleA1
-pom.xml
-pom.xml
-moduleB
-moduleB1
-pom.xml
-pom.xml
-pom.xml
我想做什么。 假设每个pom.xml中都有一个版本-5.0.0。 ModuleA1 pomx看起来像:
<parent>
<groupId>com.sample.project</groupId>
<artifactId>moduleA</artifactId>
<version>5.0.0</version>
</parent>
<groupId>com.sample.project.moduleA</groupId>
<artifactId>moduleA1</artifactId>
<version>5.0.0</version>
现在,我想增加moduleA1的版本。 所以...
mvn -N versions:set -DnewVersion=5.0.1 -DgroupId=com.sample.project.moduleA -DartifactId=moduleA1
ModuleB1依赖于moduleA1
<parent>
<groupId>com.sample.project</groupId>
<artifactId>moduleB1</artifactId>
<version>5.0.0</version>
</parent>
<groupId>com.sample.project</groupId>
<artifactId>moduleB1</artifactId>
<version>5.0.0</version>
<dependency>
<groupId>com.sample.project.moduleA</groupId>
<artifactId>moduleA1</artifactId>
<version>5.0.0</version>
</dependency>
此依赖项的版本应进行更新,并且仅在第一次时使用(当版本与父代相同时)。如果我想将其更新为5.0.2,则此依存关系将不会更改,它将保持为5.0.1(仅将有针对性的moduleA1更新为5.0.2)。 我尝试使用dependencyManegement,但结果完全相同。 有什么想法如何强制maven更新指向的模块及其模块在其他模块上的依赖关系?
答案 0 :(得分:0)
在所有模块依赖项中使用${project.version}
,并且您拥有一致且最新的版本。
答案 1 :(得分:0)
最后我找到了解决方案。 关键是将oldVersion参数设置为以前的版本。否则,version:set将使用$ {project.version},这是第一次更新版本,因为模块版本与project.version相同。