Spring 3升级后Swagger 3导入失败,求解决方案
Spring Boot 3.x升级后Swagger 3依赖解析失败的解决方案
核心问题分析
你的pom.xml存在两个致命问题:
- Springfox与Springdoc冲突:Springfox 3.0.0已停止维护,且不兼容Spring Boot 3.x(Spring Boot 3基于Jakarta EE API,Springfox仍使用旧的javax命名空间),同时引入Springfox和Springdoc(OpenAPI官方适配方案)会导致依赖混乱。
- Swagger依赖版本不匹配:单独引入的
swagger-annotations/swagger-models2.2.15是Swagger 2.x版本,而OpenAPI生成的类使用的是Swagger 3.x(OpenAPI 3.0)的注解,版本不匹配导致找不到依赖。
修复步骤
移除所有Springfox依赖
直接删除springfox-swagger2相关依赖,Spring Boot 3.x下不需要Springfox,Springdoc是官方推荐的替代方案。清理冗余的Swagger依赖
删除单独引入的swagger-annotations和swagger-models,Springdoc starter已经包含了兼容OpenAPI 3.0的注解和模型依赖,单独引入旧版本会引发冲突。修正后的依赖配置
只保留Springdoc的starter依赖即可:<properties> <springdoc.version>2.5.0</springdoc.version> </properties> <dependencies> <!-- Springdoc OpenAPI 3.x 适配Spring Boot 3.x --> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>${springdoc.version}</version> </dependency> </dependencies>
额外排查建议
- 执行
mvn clean install -U强制清理本地仓库缓存并重新拉取依赖,避免旧缓存导致的依赖异常。 - 运行
mvn dependency:tree对比正常工作的应用的依赖树,找出两个项目中Swagger/OpenAPI相关依赖的差异,重点检查传递依赖的版本。 - 确认OpenAPI生成工具的配置,确保生成的类使用的是
io.swagger.v3.oas.annotations开头的Swagger 3.x注解,而非旧的io.swagger.annotations。
内容的提问来源于stack exchange,提问作者Mike3355
相关产品推荐
相关产品推荐

