欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

maven依赖传递及jar包冲突解决方案

程序员文章站 2022-05-28 12:57:06
...

依赖传递

​ 当前项目引入了一个依赖,该依赖的依赖也会被引入项目。maven会解析直接依赖的POM,将那些必要的间接依赖,以传递依赖的形式引入到当前项目中,这种现象我们称为依赖传递。

​ 依赖传递可能会引起jar包依赖冲突及循环依赖的问题。

依赖冲突解决

依赖调节原则

  • 路径近者优先原则

    按照jar包依赖的最短路径选择。当同时依赖于spring-contex和spring-webmvc时,都会传递过来 spirng-beans,那如果直接把spring-beans的依赖直接写到pom文件中,那么项目就不会再使用其他依赖传递来的spring-beans,因为自己直接在pom中定义spring-beans要比其他依赖传递过来的路径要近。

  • 第一声明者优先原则

    在pom文件定义依赖,以先声明的依赖为准。

    比如当A依赖C,B依赖于C,在pom中先定义A则导入的jar包版本即为A依赖于C的版本,若先定义B则导入的jar包版本为B依赖于C的版本。

排除依赖

比如在依赖zookeeper的设置中添加排除依赖,排除slf4j的依赖

<dependency>
    <groupId>
相关标签: maven