Maven pom.xml下的依赖包的传递关系
作者:
空山Echo | 来源:发表于
2018-09-06 17:02 被阅读0次
一、dependency 下的标签解释
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>compile</scope>
<type>jar</type>
</dependency>
</dependencies>
![](https://img.haomeiwen.com/i3067756/909d2b532993eb7d.png)
image.png
二、如何理解依赖包具有传递性,以及它们的使用级别(注意<scope>的值,若不打进包自然不被传递,如test、provided)
- Pa -----logging1.0.1.jar
Pc -----Pa(则Pc-----logging1.0.1.jar)
若Pc 本工程直接添加logging1.0.5依赖,不论代码先后,优先使用本工程自身的依赖jar包1.0.5。
- Pa ----- logging1.2.6.jar
Pb ----- logging1.3.0.jar
Pc ----- Pa,Pb
则,Pc将依赖logging1.2.6.jar
- Pa ----- logging1.2.6.jar
Pb ----- logging1.3.0.jar
Pc ----- Pa Pd ----- Pc,Pb
此时Pd默认依赖Pb传递来的logging1.3.0.jar。若想使用Pa中的logging1.2.6.jar 则需要使用排除标签 <exclusion>排除logging1.3.0.jar
结论:离工程越近的级别优先级越高,同级别时选择先依赖的那个,若想使用低级别可使用排除高级别的方法
![](https://img.haomeiwen.com/i3067756/b1acfa6676e5f7bc.png)
image.png
三、查看依赖关系图
![](https://img.haomeiwen.com/i3067756/5d4dab82dd1df804.png)
image.png
本文标题:Maven pom.xml下的依赖包的传递关系
本文链接:https://www.haomeiwen.com/subject/lwrxgftx.html
网友评论