zoukankan      html  css  js  c++  java
  • Maven传递依赖的坑:父pom中dependencyManagement版本优先级高于传递依赖版本

    一、由来

    之前同事问了个问题,就是当前工程为spring boot项目,假设版本号为2.0.3

    这个项目中依赖了一个spring boot项目依赖(先别管为啥有这么奇葩的依赖,这个版本是1.5.9)。

    1.5.9的版本,会传递一堆starter过来。

    结果最终看到的是,所有的starter版本都是2.0.3。

    二、原因

    maven官方有下面一段话:

    https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html

     翻译下:

    Dependency management:允许项目作者直接指定artifact的版本,当该组件是通过传递依赖传递过来,或者为没有指定版本号的直接依赖。

    再回头看前言里的问题,就是当前工程继承了spring boot parent 2.0.3,然后里面的<dependencyManagement>指定了各组件的版本号。这时候被依赖的1.5.9的组件,作为传递依赖,其版本号就会使用2.0.3.

    三、参考

    也有人遇到了同样问题:

    https://blog.csdn.net/zwt0909/article/details/52372765

    https://blog.csdn.net/jiaobuchong/article/details/81842503

  • 相关阅读:
    第一章-实例7-猴子吃桃问题
    第一章-实例6-判断是否为闰年
    第一章-实例3-计算变量所占字节数
    IDEA学习笔记
    spring boot学习概要(尚硅谷)
    JSP动态WEB开发技术--第一章
    学习前端的准备任务
    cmd优化
    软件测试基础概念
    软件工程理论
  • 原文地址:https://www.cnblogs.com/grey-wolf/p/10395153.html
Copyright © 2011-2022 走看看