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

Spring Boot项目添加Java类后出现NoSuchMethodError异常求助

解决Spring Boot 2.7.3中snakeyaml的NoSuchMethodError问题

问题根源

Spring Boot 2.7.3默认适配的snakeyaml版本是1.30,项目中大概率是其他依赖间接引入了不兼容的snakeyaml版本,导致版本冲突——新版本的org.yaml.snakeyaml.representer.Representer可能移除了无参构造方法,引发运行时错误。

具体解决步骤

  • 强制锁定snakeyaml版本:在build.gradle的dependencies块中直接声明依赖,覆盖其他依赖引入的版本:

    dependencies {
        // 保留原有依赖,新增以下行
        implementation 'org.yaml:snakeyaml:1.30'
    }
    
  • 排查并排除冲突依赖:执行Gradle命令生成完整依赖树,定位引入冲突版本的依赖:

    ./gradlew dependencies --configuration runtimeClasspath
    

    在输出中搜索snakeyaml,找到对应的冲突依赖后,通过exclude排除其自带的snakeyaml:

    dependencies {
        implementation('冲突依赖的完整坐标') {
            exclude group: 'org.yaml', module: 'snakeyaml'
        }
    }
    
  • 清理重建项目:执行以下命令清理缓存并重新构建:

    ./gradlew clean build
    

    重启IntelliJ IDEA并同步Gradle项目,确保依赖生效。

  • 排查DevTools类加载问题:如果使用了Spring Boot DevTools,临时注释掉该依赖后重新运行项目,排查是否是类加载器冲突导致的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 01:13:15