maven依赖的优先级

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。maven依赖的优先级,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

优先级

在 Maven 中,依赖的解析顺序和优先级如下:

直接依赖优先级高于传递性依赖: 如果你在项目的 pom.xml 中直接声明了某个依赖项,那么 Maven 会首先尝试使用这个直接声明的依赖项,而不考虑传递性依赖。直接依赖项的版本号会优先于传递性依赖。

最近者优先: 如果有多个传递性依赖解析到相同的依赖项,Maven 将选择距离项目最近的那个依赖项。这意味着,离项目更近的依赖项的版本会被选择。

先声明者优先: 如果有多个传递性依赖解析到相同的依赖项,并且它们距离项目的距离相同,则 Maven 将选择最先声明的那个依赖项。

实战

image

micrometer-core 被两个库依赖:

  • influxdb-spring,依赖micrometer-core的1.11.3版本
  • spring-boot-starter-actuator,依赖micrometer-core的1.9.16版本

根据“最近着优先”原则,最终maven选择的是1.9.16版本。
“omitted for conflict with:1.9.16” 意思是 “和版本1.9.16冲突,被省略”,也就是不加载1.11.3版本。

如果硬要使用1.11.3版本,方法就是提高1.11.3版本的依赖优先级。
方案一:

 <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-influx</artifactId>
            <version>1.11.3</version>
        </dependency>

方案二:

<dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-core</artifactId>
            <version>1.11.2</version>
        </dependency>

都可以。

扩展学习

maven的optional参数:
https://cloud.tencent.com/developer/article/1756145

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/203692.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!