maven仲裁机制

零、前言
先看几个不同要素:
1、jar包引入,有直接引入和间接引入,所谓的引用路径 就可能有差异。
2、jar包还有版本号,高低版本之称。
3、jar引入有顺序,先后之分。

一、机制
那么maven是怎么来排序的呢,
1、<dependencyManagement> 显示什么管理
加上这个标签,显示声明,优先级最高,如果在此标签里有声明版本号,则一定用这个版本。
另外,这个声明,不会真正引入jar,而是在需要依赖的时候,真正的引入。
2、没有声明的时候
按照如下顺序
1)、先看路径,短路径优先原则,优先引用,在IDEA的包结构图也可以看到引用路径。
2)、路径一致,则看引用顺序,第一声明优先。

二、其他
建议用<dependencyManagement> 管理版本。
如果不想用<dependencyManagement> ,则就要把第三方的jar包引用提前,而直接引用的jar包放后,
防止修改了第三方引用的其他jar版本,引起版本不支持的错误。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。