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

Spring Boot使用Lombok时为何需配置排除及安装IDEA插件?

Lombomb 使用疑问解答

我在项目中使用Lombok,已在POM.xml中添加如下Lombok依赖:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

但有两个疑问:

a) 为何必须在<build>标签下添加排除配置?这个配置的作用是什么?

对应的build配置代码:

<build>
    <plugins>
      <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>
    </plugins>
  </build>

解答:
Lombok本质是编译期工具——它只在代码编译阶段生效,帮你自动生成getter/setter、构造方法这些代码,一旦编译完成生成class文件,Lombok本身就没用了。

你已经把依赖设为<optional>true</optional>,意思是这个依赖仅当前项目编译时需要,下游依赖你的项目不会自动继承这个依赖。但Spring Boot的maven插件打包时,默认会把项目依赖的jar包都打进最终的可执行jar里,如果不手动排除Lombok,它会被一起打包进去,既浪费jar包体积,又属于完全不必要的运行时依赖。

添加这个排除配置,就是明确告诉Spring Boot打包插件:别把Lombok的jar包放进最终的可执行jar里,因为运行时根本用不上。

b) 为何需要在IntelliJ IDEA中安装Lombok插件?

解答:
IDEA默认不认识Lombok的注解——比如你加了@Data注解,Lombok会在编译时自动生成getter/setter,但IDEA的代码检查器不知道这一点,它会扫描你写的源码,发现你调用obj.getXXX()但源码里没写这个方法,就会标红报错,还会影响代码提示。

安装Lombok插件后,IDEA就能识别所有Lombok注解,知道这些方法是编译时自动生成的,不会再报错,同时还能在代码中显示生成方法的提示,让你写代码时更顺畅,比如自动补全生成的getter方法。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 05:35:18