当前位置: 首页 > 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.xdnf.cn/news/902449.html

相关文章:

  • 【数据结构】B树
  • linux操作系统笔记1
  • 鸿蒙开发 获取当前页面的路径和名字
  • 深入理解指针(二)
  • 文件上传漏洞深度解析:检测与绕过技术矩阵
  • 深入理解 transforms.Normalize():PyTorch 图像预处理中的关键一步
  • Web 架构之 CDN 加速原理与落地实践
  • Significant Location Change
  • 筛选企业订单和业绩显著增长的标的
  • 联想困局,破于AI?
  • 【Kotlin】注解反射扩展
  • 【大厂机试题解法笔记】区间交集
  • 浏览器工作原理05 [#] 渲染流程(上):HTML、CSS和JavaScript是如何变成页面的
  • ES6——对象扩展之Set对象
  • springMVC-10验证及国际化
  • LangChainGo入门指南:Go语言实现与OpenAI/Qwen模型集成实战
  • React 第五十五节 Router 中 useAsyncError的使用详解
  • Editing Language Model-based Knowledge Graph Embeddings
  • 多线程下使用缓存+锁Lock, 出现“锁失效” + “缓存未命中竞争”的缓存击穿情况,双重检查缓存解决问题
  • 《深度探秘:Java构建Spark MLlib与TensorFlow Serving混合推理流水线》
  • python报错No module named ‘tensorflow.keras‘
  • QPair 类说明
  • Bootstrap 4 文件结构与 API 使用指南
  • 前端事件循环深度解析
  • 北京大学肖臻老师《区块链技术与应用》公开课:12-BTC-比特币的匿名性
  • LeetCode 热题 100 34. 在排序数组中查找元素的第一个和最后一个位置
  • vscode .husky/pre-commit: line 4: npx: command not found
  • 3 个优质的终端 GitHub 开源工具
  • 408第一季 - 数据结构 - 栈与队列的应用
  • 数的计算,C++实现