Maven2依赖冲突的解决

1.什么是依赖传递

比如,我们的项目依赖spring-webmvc.jar,而spring-webmvc.jar依赖spring-beans.jar.所以spring-beans.jar也会出现在我们的项目中.这种现象我们称为传递依赖.

2.依赖冲突的解决

我们会发现这两个 jar 包同时都依赖了 spring-beans,spring-webmvc 依赖 spirng-beans-4.2.4,spring-context 依赖 spring-beans-5.0.2,但是发现spirng-beans-4.2.4 加入到工程,而我们希望 spring-beans-5.0.2 加入工程。这就造成了依赖冲突。解决依赖冲突有以下原则:

2.1第一声明者优先原则

如果将上边 spring-webmvc 和 spring-context 顺序颠倒,系统将导入 spring-beans-5.0.2

2.2路径近者优先原则

如果直接把 spring-beans 的依赖直接写到 pom 文件中,那么项目就不会再使用其他依赖传
递来的 spring-beans,因为自己直接在 pom 中定义 spring-beans 要比其他依赖传递过来的路
径要近。

2.3排除依赖

2.4锁定版本

注意:在工程中锁定依赖的版本并不代表在工程中添加了依赖,如果工程需要添加锁定版本
的依赖则需要单独添加<dependencies></dependencies>标签,如下:

上边添加的依赖并没有指定版本,原因是已在<dependencyManagement>中锁定了版本,
所以在<dependency>下不需要再指定版本。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值