maven依赖传递和排除依赖冲突

1 依赖的传递

假如 A项目 依赖 a.jar 1.0.1,b.jar 1.0.1,没有直接依赖c.jar 1.0.1,但是b.jar 1.0.1依赖了c.jar 1.0.1,可以说A项目间接依赖了c.jar 1.0.1

B项目 依赖 a.jar 1.0.2,b.jar 1.0.2,c.jar 1.0.2.

C项目直接依赖 A,B项目

但是C中的pom文件先依赖A再依赖B

那么C中a.jar 的版本为1.0.1  a.jar都是直接依赖,按照依赖的优先顺序,而C中c的jar版本为1.0.2.

2 排除依赖冲突 

使C项目不依赖A项目的jar包

<dependencies>

    <dependency>
        <groupId>B</groupId>
        <artifactId>B</artifactId>
        <version>0.0.1</version>

         <exclusions>
            <exclusion>
              <!--被排除的依赖包坐标-->
              <groupId>A</groupId>
              <artifactId>A</artifactId>
              <version>0.0.1</version>
            </exclusion>
         </exclusions>
    </dependency>
</dependencies>
原文地址:https://www.cnblogs.com/zhangzhiqin/p/8507832.html