Spring Boot OAuth2 Server构建依赖报错,添加版本后仍失败如何解决?
解决Spring Boot OAuth2 Server构建时Cloud OAuth2依赖版本缺失问题
问题场景
跟着教程搭建Spring Boot OAuth2 Server,修改pom.xml后构建报错,提示org.springframework.cloud:spring-cloud-starter-oauth2和spring-cloud-starter-security的dependencies.dependency.version缺失。手动给这两个依赖加上2.2.5.RELEASE版本,执行mvn clean后构建还是失败,最终换成spring-security-oauth2-autoconfigure等依赖才解决,但不清楚原依赖为啥失效。
可行解决方案
- 删掉pom.xml里的
spring-cloud-starter-oauth2和spring-cloud-starter-security依赖 - 添加Spring Security官方维护的OAuth2自动配置及核心依赖,示例配置如下:
<dependency> <groupId>org.springframework.security.oauth.boot</groupId> <artifactId>spring-security-oauth2-autoconfigure</artifactId> <version>2.2.13.RELEASE</version> <!-- 版本要和你的Spring Boot版本对应 --> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId> </dependency>
- 确保Spring Boot父依赖的版本和OAuth2自动配置版本兼容(比如Spring Boot 2.2.x系列对应2.2.x.RELEASE的oauth2-autoconfigure)
- 重新执行
mvn clean install完成构建
原依赖失效原因
spring-cloud-starter-oauth2和spring-cloud-starter-security属于Spring Cloud生态组件,这类组件的版本需要通过Spring Cloud的BOM来统一管理,单独指定版本很容易出现Spring Boot与Spring Cloud版本不兼容的问题。如果你的项目没引入Spring Cloud BOM,手动指定的版本大概率和当前Spring Boot版本不匹配,导致依赖冲突或缺失间接依赖,构建自然失败。- 另外,Spring Cloud OAuth2已经进入维护状态,官方不再新增功能,转而推荐使用Spring Security原生的OAuth2支持(也就是
spring-security-oauth2-autoconfigure这类依赖),旧的Cloud版组件本身就存在版本适配的隐患。
内容的提问来源于stack exchange,提问作者tbs
相关产品推荐
相关产品推荐

