maven-jar依赖问题整理

依赖传递

只有<scope>为compile时可以传递依赖

A.jar依赖于B.jar,B.jar依赖于C.jar,要使A.jar 也依赖 C.jar ,C.jar的scope必须是compile(默认就是compile)

依赖原则

最短路径优先原则

依赖同一个X.jar,路径长度不同,如

A->B->C->X(1.0)   路径长度为3

A->D->X(2.0)   路径长度为2

此时maven使用最短路径优先原则,使用使用X(2.0)

第一声明优先原则

路径长度相同,且X.jar在不同的pom.xml中:

A->B->X(1.0)

A->D->X(2.0)

以上在A的pom文件中,假设B在D之前声明依赖,则会使用X(1.0)

如果是在同一个pom中,重复声明两个相同的jar版本,使用的是覆盖原则,后者将覆盖前者版本(不过一般没这么无聊)

posted @ 2021-12-27 15:38  鼠标的博客  阅读(77)  评论(0编辑  收藏  举报