<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.0.5.RELEASE</version> </dependency> </dependencies>
当咱们导入spring-webmvc的依赖时,咱们发如今spring-webmvc下同时也导入了别的依赖。这是由于spring-webmvc建立的时候也导入了这些依赖,同时在这些依赖下也有别的依赖存在,这就是maven依赖传递。web
<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依赖冲突。spring
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.0.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>5.2.8.RELEASE</version> </dependency> </dependencies>
先声明的spring-webmvc依赖 可是spring-beans的路径更近,因此下面的依赖有效。bash
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.0.5.RELEASE</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </exclusion> </exclusions> </dependency>
能够发现这时spring-webmvc下的spring-beans依赖没有了mvc
在pom中使用dependencyManagement进行版本锁定,使用方法以下:(注意dependencyManagement中只是声明使用的版本,不会导入依赖)
当咱们只导入spring-aop时,里面的spring-beans是5.2.8版本的
加入版本锁定后:maven
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</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> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> </dependency> </dependencies>
spring-beans的版本被锁定在了5.0.5版本svg