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

        项目上使用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关联部分:


  

  org.flywaydb
  flyway-core
  ${flyway.version}   --此处flyway.version为8.0.5

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

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


  
  
       org.flywaydb
       flyway-core
        7.1.1
   


  org.springframework.boot
  spring-boot-dependencies
  2.6.13
  pom
  import



你可能感兴趣的:(spring,maven,java,flyway)