当前位置: 首页 > news >正文

maven微服务${revision}依赖打包无法识别

1、场景描述

我现在又一个微服务项目,父pom的版本,使用<properties>定义好,如下所示:

<name>ypsx-finance-center</name>
<artifactId>ypsx-finance</artifactId>
<packaging>pom</packaging>
<version>${revision}</version><properties><revision>2.0.21-SNAPSHOT</revision>
</properties>

子项目依赖父项目,如下所示:

<parent><artifactId>ypsx-finance</artifactId><groupId>com.ypsx</groupId><version>${revision}</version></parent>

但是我在使用maven打包的时候,发现子项目中父项目的模块还是${revision},没有改为具体的版本号

2.0.21-SNAPSHOT

2、原因

1.自Maven 3.5.0-beta-1 开始,可以使用 ${revision}, ${sha1} and/or ${changelist} 这样的变量作为版本占位符

2.但是在install或者deploy是无法识别的,就需要这个插件flatten-maven-plugin:发现使用插件之后,发现它是把这个新的pom打到jar包里。也就是说,

这个插件的作用就是在install或者deploy的时候,生成一个新的替换占位符的pom文件,也就是帮你替换了这些变量,接着把新的pom文件打入到jar包里。

所以我们需要再父项目的pom中添加如下插件

<build><plugins><!--1.自Maven 3.5.0-beta-1 开始,可以使用 ${revision}, ${sha1} and/or ${changelist} 这样的变量作为版本占位符2.但是在install或者deploy是无法识别的,就需要这个插件:发现使用插件之后,发现它是把这个新的pom打到jar包里。也就是说,这个插件的作用就是在install或者deploy的时候,生成一个新的替换占位符的pom文件,也就是帮你替换了这些变量,接着把新的pom文件打入到jar包里。--><plugin><groupId>org.codehaus.mojo</groupId><artifactId>flatten-maven-plugin</artifactId><version>1.1.0</version><configuration><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></plugins></build>

再次install或者deploy后,发现版本已经改为具体的版本号了。

参考:

https://zhuanlan.zhihu.com/p/701573418

http://www.lqws.cn/news/187489.html

相关文章:

  • Xsens-AAA工作室品质,为动画师准备
  • 深入浅出多路归并:原理、实现与实战案例解析
  • Blaster - Multiplayer P145-P152: 多种武器
  • 使用docker 安装Redis 带配置文件(x86和arm)版本
  • Spring 团队详解:AOT 缓存实践、JSpecify 空指针安全与支持策略升级
  • ADI的BF609双核DSP怎么做开发,我来说一说(五)LAN口测试
  • 汽车免拆诊断案例 | 2010款捷豹XFL车制动警告灯、DSC警告灯异常点亮
  • LINUX 66 FTP 2 ;FTP被动模式;FTP客户服务系统
  • [蓝桥杯]搭积木
  • 【Zephyr 系列 11】使用 NVS 实现 BLE 参数持久化:掉电不丢配置,开机自动加载
  • [c#]判定当前软件是否用管理员权限打开
  • libGL error
  • CVPR 2025 | 港中文 MMLab 提出文生图模型 T2I-R1,文生图进入R1时刻!
  • [论文阅读] 人工智能 | 大语言模型计划生成的新范式:基于过程挖掘的技能学习
  • 【Bluedroid】蓝牙启动之 SMP_Init 源码解析
  • 外卖大战背后的创始人IP智慧:差异化、护城河与心智占领
  • MySQL基础(三)DQL(Data Query Language,数据查询语言)
  • 如何使用k8s安装redis呢
  • 深入理解 Python `asyncio` 的子进程协议(Subprocess Protocol)
  • C++算法-动态规划2
  • 数据库优化秘籍:解锁性能提升的 “潘多拉魔盒”
  • OpenLayers 分屏对比(地图联动)
  • 记录一个用了很久的git提交到github和gitee比较方便的方法
  • JDK8之后的新特性
  • React源码阅读-fiber核心构建原理
  • 【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
  • QPair 类说明
  • 水库大坝安全监测系统是什么?需要用到哪些设备?
  • 1.3 古典概型和几何概型
  • 2025.6.5学习日记 Nginx主目录文件 .conf介绍、热部署 定时日志切割