1.最短路径优先原则
1. A->B->H
2. C->D->E->H
如上依赖关系,1 依赖的H会生效。当然,直接依赖优先于传递依赖,如果传递依赖的jar包版本冲突了,可以自己声明一个指定版本的依赖jar。
2.第一声明优先原则
<dependencies>
...
<dependency>a-1.jar</dependency>
<dependency>a-2.jar</dependency>
</dependencies>
如上依赖引入顺序,a-1.jar优先。同一pom配置文件中,如果有两个名称相同版本不同的依赖声明,那么先写的会生效。
3.排除原则
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.4</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<artifactId>jackson-annotations</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
</exclusion>
<exclusion>
<artifactId>jackson-core</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
</exclusion>
</exclusions>
</dependency>
传递依赖冲突时,可以在不需要的jar的传递依赖中声明排除。
4.版本锁定原则
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.4</version>
</dependency>
</dependencies>
</dependencyManagement>
在配置文件pom.xml中先声明要使用哪个版本的相应jar包,声明后其他版本的jar包一律不依赖。
标签:core,依赖,jackson,jar,maven,冲突,com,fasterxml From: https://www.cnblogs.com/zjfjava/p/16969389.html