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

Maven:Spring Boot项目中如何更新传递依赖snakeyaml?

如何更新Spring Boot项目中的snakeyaml依赖

核心结论

不用手动排除spring-boot-starter-web传递过来的snakeyaml,直接在pom.xml里显式声明指定版本的snakeyaml依赖就行,Maven会自动优先用你声明的版本。

具体操作方式

方式1:直接添加指定版本依赖

在pom.xml的<dependencies>区块里加入这段代码:

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

添加完成后,执行mvn dependency:tree命令就能验证,snakeyaml的版本会从原有的1.30自动替换为1.33——这是因为Maven的依赖调解规则会优先使用直接声明的依赖版本,覆盖传递过来的旧版本。

方式2:用Spring Boot依赖管理统一控制(更推荐)

如果你的项目继承了spring-boot-starter-parent(大部分Spring Boot项目默认如此),可以在<dependencyManagement>区块里统一声明版本,这样整个项目都会遵循这个版本,无需在<dependencies>中重复指定版本号:

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

这种方式更符合Spring Boot的依赖管理规范,后续需要调整版本时,只需要修改这一处即可,维护起来更高效。

关于“排除依赖”的补充

手动排除传递的snakeyaml并非必须操作,但如果想要明确阻止旧版本被引入,也可以这么做:

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

之后再添加显式的snakeyaml依赖即可。不过这种做法略显冗余,因为Maven本身的依赖调解机制已经能处理版本优先级问题,除非遇到特殊的依赖冲突场景,否则没必要多此一举。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 14:46:00