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

Spring Boot中pom.xml自动排除Lombok?传递依赖版本管控咨询

Lombok相关Maven配置疑问解答

问题描述

  1. 我手动给项目添加了Lombok依赖,没碰过spring-boot-maven-plugin的配置,但pom.xml里自动出现了这段排除配置:
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <excludes>
            <exclude>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </exclude>
        </excludes>
    </configuration>
</plugin>

想问这是不是添加Lombok后自动生成的?

  1. 如果要修改传递依赖(比如snakeyaml)的版本,应该用配置排除后重新引入,还是通过properties配置覆盖版本,比如下面这种写法:
<properties>
    <snakeyaml.version>1.33</snakeyaml.version>
</properties>

问题解答

关于Lombok自动生成排除配置的问题

没错,这个排除配置是Spring Boot的依赖管理机制自动加上的。Lombok属于编译期专属依赖——它只在代码编译阶段帮你生成getter、setter、构造方法这些代码,项目运行的时候根本不需要它。Spring Boot的Maven插件能自动识别这类依赖,自动添加排除配置,避免把没用的依赖打包到最终JAR里,减少包体积。

关于传递依赖版本修改的方式选择

优先用properties配置覆盖版本,理由如下:

  • 这是Spring Boot官方推荐的标准做法,Spring Boot的依赖管理体系已经为绝大多数常用依赖定义了对应的版本属性(比如snakeyaml.version),直接修改properties就能统一管控版本,从根源避免版本冲突。
  • 用再手动引入依赖的方式太繁琐:如果多个依赖都间接引用了snakeyaml,你得挨个排除,还得自己维护引入的版本号,远不如properties一键覆盖高效。
  • 只有两种情况适合用+手动引入:一是该依赖没有对应的Spring Boot版本属性;二是你需要完全替换依赖实现(比如换不同groupId的同类库)。

内容的提问来源于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 12:31:09