如何解决依赖冲突

1 什么是依赖冲突
首先先看图
在这里插入图片描述

由于依赖传递现象的存在, spring-beans-4.2.4 依赖 spirng-core-4.2.4,而spring-context-5.0.2 依赖 spring-beans-5.0.2,但
到底项目spirng-core加入到了工程中使用的是什么版本?这就造成了依赖冲突。
2. 如何解决依赖冲突
1.使用maven提供的依赖调解原则
1.1 第一声明者优先原则
在 pom 文件中定义依赖,以先声明的依赖为准。其实就是根据坐标导入的顺序来确定最终使用哪个传递过来的依赖。
例如:
在这里插入图片描述
在这里插入图片描述
结论:通过上图可以看到,spring-beans和spring-context都传递过来了spirng-core,但是因为spring-context在前面,所以最终使用的spirng-core是由spring-context传递过来的,而spring-beans传递过来的spirng-core则被忽
略了。

1.2 路径近者优先原则
在这里插入图片描述

2.排除依赖(推荐使用)
可以使用exclusions标签将传递过来的依赖排除出去。
在这里插入图片描述
在这里插入图片描述

3.锁定版本
面对众多的依赖,有一种方法不用考虑依赖路径、声明优化等因素可以采用直接锁定版本的方法确定依赖构件的版本,版本锁定后则不考虑依赖的声明顺序或依赖的路径,以锁定
的版本的为准添加到工程中,此方法在企业开发中常用。

版本锁定的使用方式:

第一步:在dependencyManagement标签中锁定依赖的版本
第二步:在dependencies标签中声明需要导入的maven坐标

①在dependencyManagement标签中锁定依赖的版本
在这里插入图片描述

②在dependencies标签中声明需要导入的maven坐标
在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值