有时候需要在聚合工程中通过父类定义版本号来进行全局的控制,这里我使用 ${revision} 来解决子模块与父级版本管理的问题,例如:A --> B —> C 模块,A为顶级模块
在A模块中引入插件
<properties>
<!--定义好版本号-->
<revision>1.0-SNAPSHOT</revision>
</properties>
<!--使用revision作为版本号传递-->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<version>1.2.4</version>
<configuration>
<!-- 避免IDE将 .flattened-pom.xml 自动识别为功能模块 -->
<updatePomFile>true</updatePomFile>
<flattenMode>resolveCiFriendliesOnly</flattenMode>
</configuration>
<executions>
<execution>
<id>flatten</id>
<phase>process-resources</phase>
<goals>
<goal>flatten</goal>
</goals>
</execution>
<execution>
<id>flatten.clean</id>
<phase>clean</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
B模块引用
<parent>
<groupId>xxx.xxx.xxx</groupId>
<artifactId>A</artifactId>
<version>${revision}</version>
</parent>
C模块引用
<parent>
<groupId>xxx.xxx.xxx</groupId>
<artifactId>B</artifactId>
<version>${revision}</version>
</parent>
参考文档:https://blog.csdn.net/weixin_37672801/article/details/124832106