达到的效果:我自己写的代码使用一个版本,而依赖内部使用另一个版本
举个例子,我的一个项目中的一个功能需要去同时使用一个依赖的两个版本,如:
<dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-oauth2-core</artifactId> <version>5.7.11</version> </dependency>
<dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-oauth2-core</artifactId> <version>6.3.3</version> </dependency>
这个依赖是存在于这个依赖内部
<dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-oauth2-jose</artifactId> <version>5.7.11</version> </dependency>
解决办法:在你的项目根目录下的pom的指定一个版本,6.3.3
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-oauth2-core</artifactId> <version>6.3.3</version> </dependency> </dependencies> </dependencyManagement>
同时在你要使用的模块下的pom,在不改变原来依赖的条件下,再添加一个依赖5.7.11
<dependencies> <!--security--> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-oauth2-jose</artifactId> <version>5.7.11</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-oauth2-core</artifactId> <version>5.7.11</version> </dependency> </dependencies>
这样的结果就是:
在该模块下,
你自己的代码去使用这个依赖时,使用的是5.7.11这个版本,
而这个依赖去使用时,使用的是6.3.3的版本,
完美解决问题。