前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >maven打包出来的jar包引入的其他jar包版本不是pom文件配置的版本

maven打包出来的jar包引入的其他jar包版本不是pom文件配置的版本

作者头像
johnhuster的分享
发布2023-10-16 20:00:25
2010
发布2023-10-16 20:00:25
举报
文章被收录于专栏:johnhusterjohnhuster

????????项目上使用flyway来管理数据库版本,但是遇到了一件奇怪的事,这件事发生的时间点是springboot从2.3.12升级到2.6.7版本,升级后到底发生了什么,到底是谁引入了flyway 8.0.5版本呢,博主在pom中显示引入的flyway版本为7.1.1,在这个公共jar包里面执行mvn dependency:tree看到的flyway版本也是7.1.1,为什么这个公共jar包被其他项目引入后执行mvn dependency:tree却显示 flyway的版本为8.0.5,而且显示也是由这个公共jar包引入的。

? ? ? ? 刚开始没去想springboot版本升级的问题,后来找到问题后再去看确实就是springboot版本升级导致的,因为笔者在dependencymanagement中引入了spring-boot-dependencies这个依赖,下面贴出这种依赖做了些啥,这里只贴出跟flyway关联部分:

代码语言:javascript
复制
<dependencyManagement>
  <dependencies>
<dependency>
  <groupId>org.flywaydb</groupId>
  <artifactId>flyway-core</artifactId>
  <version>${flyway.version}</version>   --此处flyway.version为8.0.5
</dependency>

</dependencies>

</dependencyManagement>

?由于dependencyManagement指定的maven插件版本优先级要高,而且在不使用里面的maven插件时用mvn dependency:tree根本扫描不出来,好了,找到问题根源了,下面给出解决方案:

这个是基于maven dependencyManagement指定的版本优先级要高于dependencies中的版本,在spring-boot-dependencies前面增加flyway的依赖版本

代码语言:javascript
复制
<dependencyManagement>
  <dependencies>
  <dependency>
       <groupId>org.flywaydb</groupId>
       <artifactId>flyway-core</artifactId>
        <version>7.1.1</version>
   </dependency>
<!-- spring-boot -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-dependencies</artifactId>
  <version>2.6.13</version>
  <type>pom</type>
  <scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-09-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com