Maven版本统一管理

立山  论坛元老 | 2025-3-30 09:50:06 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1859|帖子 1859|积分 5577

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
多模块的项目,怎么方便管理 模块的版本号呢?

可以使用 
   ${revision}
  
共同 flatten-maven-plugin插件
  1.            <plugin>
  2.                 <groupId>org.codehaus.mojo</groupId>
  3.                 <artifactId>flatten-maven-plugin</artifactId>
  4.                 <version>1.1.0</version>
  5.                 <configuration>
  6.                     <updatePomFile>true</updatePomFile>
  7.                     <flattenMode>resolveCiFriendliesOnly</flattenMode>
  8.                     <pomElements>
  9.                         <build>remove</build>
  10.                     </pomElements>
  11.                 </configuration>
  12.                 <executions>
  13.                     <execution>
  14.                         <id>flatten</id>
  15.                         <phase>process-resources</phase>
  16.                         <goals>
  17.                             <goal>flatten</goal>
  18.                         </goals>
  19.                     </execution>
  20.                 </executions>
  21.             </plugin>
复制代码

父模块设置
  1. <!-- 父模块 pom.xml -->
  2. <groupId>com.example</groupId>
  3. <artifactId>parent-project</artifactId>
  4. <version>${revision}</version> <!-- 使用 revision 属性 -->
  5. <packaging>pom</packaging>
  6. <properties>
  7.     <revision>1.0.0</revision> <!-- 定义 revision 属性 -->
  8. </properties>
  9. <modules>
  10.     <module>child-module</module>
  11. </modules>
复制代码

子模块设置
  1. <!-- 子模块 pom.xml -->
  2. <parent>
  3.     <groupId>com.example</groupId>
  4.     <artifactId>parent-project</artifactId>
  5.     <version>${revision}</version> <!-- 继承父模块的 revision -->
  6.     <relativePath>../pom.xml</relativePath>
  7. </parent>
  8. <artifactId>child-module</artifactId>
  9. <!-- 不写 <version>,自动继承父模块的 revision -->
复制代码

打包之后,会生成一个 .flattened-pom.xml,这个文件 中 替换了 ${revision}的详细值,然后 打包到jar里。

如果 使用了快照版本,发现有一个问题。
因为快照版本打包后,会有一个时间戳,好比 生成的版本是 2.0-20250000.100127-2
但是,长途仓库中的 maven-metadata.xml中的版本号是 2.0-20250000.1000128-2
拉取快照版本是根据 maven-metadata.xml中的版本号来拉取的,以是 拉取不到2.0-20250000.1000128-2,因为实际的版本号是2.0-20250000.1000128-2

这就很奇怪,没找到问题的缘故原由。

如果使用快照版本,还是写死吧。







免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

立山

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表