热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java面试题:maven依赖原则以及jar包冲突

以前自以为maven玩的已经很溜了,结果今天被面试官第一个问题就问倒了。具体问题就是maven的依赖原则:加载顺序和依赖冲突。一、maven依赖原则1、依赖路径最短优先原则一个项目

以前自以为maven玩的已经很溜了,结果今天被面试官第一个问题就问倒了。具体问题就是maven的依赖原则:加载顺序和依赖冲突。

一、maven依赖原则

1、依赖路径最短优先原则

一个项目Demo依赖了两个jar包,其中A-B-C-X(1.0) , A-D-X(2.0)。由于X(2.0)路径最短,所以项目使用的是X(2.0)。

2、pom文件中申明顺序优先

如果A-B-X(1.0) ,A-C-X(2.0) 这样的路径长度一样怎么办呢?这样的情况下,maven会根据pom文件声明的顺序加载,如果先声明了B,后声明了C,那就最后的依赖就会是X(1.0)。

3,覆写优先

子pom内声明的优先于父pom中的依赖。

二、如何解决jar冲突

遇到冲突的时候第一步要找到maven加载的到时是什么版本的jar包,通过们mvn dependency:tree查看依赖树,通过maven的依赖原则来调整坐标在pom文件的申明顺序是最好的办法。

微信公众号:志哥 (ID: zhige-me)
期待与你相遇,一同成长前行!


推荐阅读
author-avatar
卡农的信仰144
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有