欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > maven微服务${revision}依赖打包无法识别

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

2025/6/8 20:45:20 来源:https://blog.csdn.net/vcit102/article/details/148475588  浏览:    关键词: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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词