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

Spring Boot 2.7.1与Spring Cloud发行版不兼容报错排查

问题描述

在Gradle项目中搭配使用Spring Boot 2.7.1、Spring Cloud 2021.0.3、Spring Contract 3.1.3时,测试阶段加载Spring上下文抛出Bean创建异常,核心错误为Spring Cloud内置的版本兼容性校验不通过,提示Spring Boot 2.7.1与当前使用的Spring Cloud发行版不匹配,给出的临时处理提示为更换Spring Boot为2.6.x版本,或设置配置项关闭兼容性校验。
项目当前引入的Spring Cloud相关依赖如下:

  • org.springframework.cloud:spring-cloud-contract-gradle-plugin:3.1.3
  • org.springframework.cloud:spring-cloud-dependencies:2021.0.3
完整错误堆栈
Caused by:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'compositeCompatibilityVerifier' defined in class path resource [org/springframework/cloud/configuration/CompatibilityVerifierAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.configuration.CompositeCompatibilityVerifier]: Factory method 'compositeCompatibilityVerifier' threw exception; nested exception is org.springframework.cloud.configuration.CompatibilityNotMetException: Spring Cloud/ Spring Boot version compatibility checks have failed: [[VerificationResult@46639e39 description = 'Spring Boot [2.7.1] is not compatible with this Spring Cloud release train', action = 'Change Spring Boot version to one of the following versions [2.6.x] .
You can find the latest Spring Boot versions here [https://spring.io/projects/spring-boot#learn]. 
If you want to learn more about the Spring Cloud Release train compatibility, you can visit this page [https://spring.io/projects/spring-cloud#overview] and check the [Release Trains] section.
If you want to disable this check, just set the property [spring.cloud.compatibility-verifier.enabled=false]']]
    at app//org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:658)
    at app//org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:638)
    at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352)
    at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195)
    at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
    at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
    at app//org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
    at app//org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
    at app//org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
    at app//org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
    at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955)
    at app//org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)
    at app//org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
    at app//org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734)
    at app//org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408)
    at app//org.springframework.boot.SpringApplication.run(SpringApplication.java:308)
    at app//org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:132)
    at app//org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99)
    at app//org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
    ... 86 more
解决方案

方案1:对齐官方兼容版本(生产环境推荐)

该报错的根本原因是版本不匹配:Spring Cloud 2021.0.3属于Jubilee发行序列,官方适配的Spring Boot版本范围为2.6.x,无法原生兼容Spring Boot 2.7.1。可任选一种版本调整方式处理:

  • 保留当前Spring Cloud、Spring Cloud Contract版本不变,将Spring Boot版本降级到2.6.x系列的稳定版本即可
  • 保留当前Spring Boot 2.7.1版本不变,将Spring Cloud升级到原生支持2.7.x版本的发行版,同步将Spring Cloud Contract升级到对应适配版本,确保三个组件版本均落在官方兼容范围内。

方案2:临时关闭兼容性校验(仅用于本地调试,不推荐生产使用)

如果暂时不需要调整依赖版本,可通过配置跳过版本校验流程,根据项目场景选择对应配置方式:

  1. 全局配置(application.yml):
spring:
  cloud:
    compatibility-verifier:
      enabled: false
  1. 全局配置(application.properties):
spring.cloud.compatibility-verifier.enabled=false
  1. 测试类临时配置:
@SpringBootTest(properties = "spring.cloud.compatibility-verifier.enabled=false")

注意:关闭校验仅会跳过启动时的版本检查逻辑,不会修复不同版本间实际存在的API不兼容、逻辑差异等问题。如果后续运行中出现类不存在、方法签名不匹配等报错,仍需通过版本对齐的方式解决。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:09:27