maven依赖传递性依赖原则
Posted 素然止步
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven依赖传递性依赖原则相关的知识,希望对你有一定的参考价值。
maven的依赖传递:
A.jar->B.jar->C.jar
要使 A.jar ->C.jar:当且仅当 B.jar 依赖于C.jar的范围是compile,如果B依赖于C的范围不是compile,那么A依赖不了C
举个例子:
这里创建两个项目,HelloWorlds和HelloWorld2,HelloWorld2配置了junit单元测试依赖,如果HelloWorlds想依赖HelloWorld2中的junit,那么HelloWorld2和junit的依赖范围必须是compile,否则依赖不了。(注意:项目之间互相依赖还需要配置依赖,详细:maven配置多个项目之间的依赖)
不过不建议修改所配置依赖的默认的依赖范围,会出现jar包冲突,会报空指针异常。
依赖原则:为了防止依赖之间的冲突
a.路径最短优先原则
b.路径长度相同:
i.在同一个pom.xml文件中有2个相同的依赖(覆盖):后面声明的依赖 会覆盖前面声明的依赖 (严禁使用本情况,严禁在同一个pom中声明2个版本不同的依赖)
ii.如果是不同的 pom.xml中有2个相同的依赖(优先):则先声明的依赖 ,会覆盖后声明的依赖
注意:只要pom发生了改动,都应该项目右键,选择maven>update project
传递依赖需要确保依赖范围为compile,而且修改默认的依赖范围会出现冲突,所以不建议修改默认的依赖范围
推荐使用依赖继承,详细:maven依赖继承。
以上是关于maven依赖传递性依赖原则的主要内容,如果未能解决你的问题,请参考以下文章