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

求助:Spring Boot 2.7.5无法覆盖snakeyaml版本至1.33的问题

解决Spring Boot 2.7.5中snakeyaml版本覆盖失效的问题

先确认容器内实际依赖版本

别光看本地有效pom,先排查GitLab流水线容器里的真实依赖情况:

  • 在流水线的maven执行步骤中加命令:mvn dependency:tree -Dincludes=org.yaml:snakeyaml,查看完整依赖树,确认是否还有1.30版本的间接引用
  • 如果是打包成jar包,解压容器内的最终jar,检查BOOT-INF/lib下的snakeyaml文件名,看版本号到底是多少

显式排除旧版本再引入新依赖

直接在Spring Boot核心starter里排除默认的1.30版本,再手动引入1.33:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.yaml</groupId>
            <artifactId>snakeyaml</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>org.yaml</groupId>
    <artifactId>snakeyaml</artifactId>
    <version>1.33</version>
</dependency>

清理GitLab流水线的依赖缓存

流水线可能缓存了旧的1.30版本依赖,导致没拉取新包:

  • 在maven构建命令里加-U参数强制更新:mvn clean install -U
  • 去GitLab项目的CI/CD设置里,手动清除依赖缓存,避免缓存干扰

检查SonarQube扫描的目标路径

有时候SonarQube扫的是旧的构建产物:

  • 确保流水线步骤先执行clean再执行build,删除旧的jar或编译文件
  • 核对SonarQube扫描配置,确认扫描路径指向的是最新构建的产物目录

排查第三方依赖的间接引入

有些第三方依赖可能自己硬编码了snakeyaml 1.30版本,没遵循Spring Boot的依赖管理:

  • 执行mvn dependency:tree,搜索所有org.yaml:snakeyaml条目,找到除Spring Boot starter外的引用来源
  • 对这些第三方依赖也添加排除规则,确保整个依赖树里只有1.33版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 09:05:20