您当前的位置: 首页 >  maven

杨林伟

暂无认证

  • 4浏览

    0关注

    3337博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

15Maven - 依赖冲突的解决

杨林伟 发布时间:2019-04-11 10:44:32 ,浏览量:4

依赖冲突的产生

如果添加两个依赖,如下图: 在这里插入图片描述 会发现这两个jar包同时都依赖了Spring-beans 在这里插入图片描述 希望spring-beans-4.2.4加入工程,发现spring-beans-3.0.5也加入到了工程,这就造成了依赖冲突了。

依赖调节原则

mave 自动按照下边的原则调解:

第一声明优先原则

在pom文件定义依赖,先声明的为准

测试: 如果将上边的struts-spring-plugins和sping-context顺序颠倒,系统将导入spring-beans-4.2.4。

分析: 由于spring-context 在前边以spring-context依赖的spring-beans-4.2.4为准,所以最终spring-beans-4.2.4添加到了工程中。

路径近者优先原则

例如:A依赖spring-beans-4.2.4,A依赖B依赖spring-beans-3.0.5,则spring-beans-4.2.4优先被依赖在A中,因为spring-beans-4.2.4相对于spring-beans-3.0.5被A依赖的路径最近。

测试: 在本工程的pom中加入spring-beans-4.2.4的依赖,根据路径有限原则,系统将导入spring-beans-4.2.4: 在这里插入图片描述

排除依赖

上边的问题可以通过排除依赖方法辅助调解,如下:

比如在依赖struts2-spring-plugin的设置中添加了排除依赖,排除spring-beans,下边的配置表示:依赖struts2-spring-plugin,但排除struts2-spring-plugin所依赖的spring-beans。 在这里插入图片描述

锁定版本(企业开发中常用方法)

版本锁定后不考虑声明的顺序或依赖的路径,如下: 在这里插入图片描述 注意:在工程中锁定依赖的版本并不代表在工程中添加了依赖,如果工程中需要添加锁定版本的依赖则需要单独添加< dependencies>标签,如下: 在这里插入图片描述

关注
打赏
1662376985
查看更多评论
立即登录/注册

微信扫码登录

0.0583s