您当前的位置:首页 > 计算机 > 编程开发 > 软件工程

如何解决依赖冲突

时间:12-11来源:作者:点击数:

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坐标

在这里插入图片描述
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门