You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 2.6.9升级Swagger2至OpenAPI3遇Jackson冲突求解

问题根因

抛出java.lang.NoSuchFieldError: MINIMIZE_QUOTES属于典型的依赖版本不兼容问题:

  • 当前项目Jackson组件存在版本混用、版本过低问题:jackson-databind为2.10.2版本,jackson-datatype为2.7.2版本,跨大版本混用本身就存在兼容性风险
  • Spring Boot 2.6.9官方内置适配的Jackson版本为2.13.x,适配Spring Boot 2.6+的OpenAPI3实现springdoc-openapi,其依赖的swagger-core v3组件要求Jackson版本不低于2.12。MINIMIZE_QUOTES是Jackson高版本中YAMLGenerator.Feature枚举类才包含的常量,项目运行时实际加载的低版本Jackson类中不存在该字段,直接触发报错。
修复方案

按优先级操作即可:

方案1:统一使用Spring Boot官方管理的Jackson版本(推荐)

  • 移除项目构建配置(pom.xml/gradle配置)中手动为所有Jackson相关依赖声明的版本号,由Spring Boot父依赖的依赖管理机制自动拉取与2.6.9版本完全适配的Jackson组件,从根源避免版本冲突。
  • 如果业务必须手动指定Jackson版本,需将所有Jackson相关组件(含jackson-core、jackson-databind、jackson-annotations、jackson-datatype-jsr310、jackson-dataformat-yaml等)的版本统一升级到2.13.5(即Spring Boot 2.6.9内置的Jackson正式版本),严禁出现不同Jackson组件版本号不一致的情况。

方案2:匹配正确的springdoc-openapi版本

  • Spring Boot 2.6.x对应的适配springdoc-openapi版本为1.6.x分支,禁止引入2.x版本(该分支适配Spring Boot 3,会引入更高版本的Jackson依赖加剧冲突)。
  • 引入springdoc依赖时不要手动指定其关联的swagger-core等组件版本,避免版本错位。

方案3:排查并排除冲突的低版本依赖

  • 执行Maven依赖树排查命令,定位是否有其他第三方依赖引入了低版本Jackson并被项目优先加载:
mvn dependency:tree -Dincludes=com.fasterxml.jackson.core
  • 找到引入低版本Jackson的依赖项后,添加exclusion配置将其排除,保证项目全局使用统一的兼容版本Jackson即可。
验证方式
  • 调整依赖后执行mvn clean compile清空旧编译缓存,重新启动项目即可解决该报错,OpenAPI3接口文档可正常加载访问。

内容的提问来源于stack exchange,提问作者Shantanu Kawale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 13:15:38