零、前言
先看几个不同要素:
1、jar包引入,有直接引入和间接引入,所谓的引用路径 就可能有差异。
2、jar包还有版本号,高低版本之称。
3、jar引入有顺序,先后之分。
一、机制
那么maven是怎么来排序的呢,
1、<dependencyManagement> 显示什么管理
加上这个标签,显示声明,优先级最高,如果在此标签里有声明版本号,则一定用这个版本。
另外,这个声明,不会真正引入jar,而是在需要依赖的时候,真正的引入。
2、没有声明的时候
按照如下顺序
1)、先看路径,短路径优先原则,优先引用,在IDEA的包结构图也可以看到引用路径。
2)、路径一致,则看引用顺序,第一声明优先。
二、其他
建议用<dependencyManagement> 管理版本。
如果不想用<dependencyManagement> ,则就要把第三方的jar包引用提前,而直接引用的jar包放后,
防止修改了第三方引用的其他jar版本,引起版本不支持的错误。