问题描述
我父模块中的spring boot版本是v2.1.17.RELEASE
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.17.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
然后我在子模块中引入了spring-boot-starter-security,指定的版本是2.4.4,覆盖了父模块中的版本(v2.1.17.RELEASE)。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>2.4.4</version>
</dependency>
然后,我运行mvn dependency:tree
命令,发现子模块中spring-boot-starter-security的版本确实是2.4.4,但是artifactId的版本(比如spring-aop) spring-boot-starter-security 引用的还是5.1.x版本,对应spring-boot-starter-security v2.1.17.RELEASE版本,而不是spring v2.4.4版本对应的5.3.x版本-boot-starter-security
解决方法
嗨,请检查这个例子
<properties>
<dependencies.version>2.1.17.RELEASE</dependencies.version>
<security.version>2.4.4</security.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${dependencies.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>${security.version}</version>
</dependency>
</dependencies>
</dependencyManagement>