【Maven】Maven依赖传递导致的依赖冲突以及解决方法(ex

2022-06-11  本文已影响0人  大数据Zone

什么是Maven依赖传递?

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.0.5.RELEASE</version>
        </dependency>
    </dependencies>

当我们导入spring-webmvc的依赖时,我们发现项目的External Libraries下同时也引入了别的依赖。这是因为spring-webmvc创建的时候也导入了这些依赖,同时在这些依赖下也有别的依赖存在,这就是maven依赖传递。

什么是Maven依赖冲突?

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.0.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>5.2.8.RELEASE</version>
        </dependency>
    </dependencies>

spring-webmvc和spring-aop下都有spring-beans依赖但是两个的版本不一致,上图中可以看出spring-aop下面的依赖是红色显示冲突失效的,这就是Maven依赖冲突。

如何解决Maven依赖冲突?

  1. 第一声明者优先原则,调换Maven依赖的顺序,在pom中以先声明的为准。

  2. 路径近者优先原则,多次依赖传递中,靠前的依赖优先,如下:

上一篇 下一篇

猜你喜欢

热点阅读