Lombok 1.18.30 与 SpringBoot 3.4 兼容配置
下文笔者讲述SpringBoot3.4配置Lombok的方法及示例分享,如下所示
核心兼容配置方案
Spring Boot 3.x
基于Jakarta EE 9+
而Lombok 1.18.30默认可能存在少量适配问题
主要需要通过 Maven/Gradle 配置和 Lombok 插件设置来解决。
Maven 配置(最常用)
在 `pom.xml` 中按以下方式配置,
确保 Lombok 版本和Spring Boot 版本正确匹配
并添加必要的编译参数:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- Spring Boot 父工程 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.4.0</version>
<relativePath/>
</parent>
<groupId>com.example</groupId>
<artifactId>lombok-springboot-demo</artifactId>
<version>1.0.0</version>
<dependencies>
<!-- Spring Boot 核心依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- Lombok 依赖(指定1.18.30版本) -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<scope>provided</scope> <!-- 仅编译期使用,不打入包 -->
</dependency>
<!-- 测试依赖(可选) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Maven 编译插件(关键:指定JDK版本和Lombok参数) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version> <!-- 适配Spring Boot 3.4的版本 -->
<configuration>
<source>17</source> <!-- Spring Boot 3.x最低要求JDK 17 -->
<target>17</target>
<encoding>UTF-8</encoding>
<!-- Lombok适配Jakarta EE的关键参数 -->
<compilerArgs>
<arg>-J-Dlombok.addLombokGeneratedAnnotation=true</arg>
<arg>-J-Dlombok.jakartaEdition=true</arg>
</compilerArgs>
</configuration>
</plugin>
<!-- Spring Boot Maven插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>3.4.0</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Gradle配置
如果使用 Gradle(Groovy DSL),在 `build.gradle` 中配置:
plugins {
id 'java'
id 'org.springframework.boot' version '3.4.0'
id 'io.spring.dependency-management' version '1.1.6'
}
group = 'com.example'
version = '1.0.0'
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
compileOnly 'org.projectlombok:lombok:1.18.30'
annotationProcessor 'org.projectlombok:lombok:1.18.30'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testCompileOnly 'org.projectlombok:lombok:1.18.30'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.30'
}
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
// Lombok适配Jakarta EE的参数
options.compilerArgs += [
'-J-Dlombok.addLombokGeneratedAnnotation=true',
'-J-Dlombok.jakartaEdition=true'
]
}
test {
useJUnitPlatform()
}
IDE配置(关键补充)
即使依赖配置正确,IDE 也需要适配才能正常识别 Lombok 注解:
1. IntelliJ IDEA:
- 安装 Lombok 插件(Settings → Plugins → 搜索 Lombok → 安装并重启)
- 开启注解处理:Settings → Build, Execution, Deployment →
Compiler → Annotation Processors →
勾选 `Enable annotation processing`
2. Eclipse:
- 安装 Lombok 插件:将 lombok-1.18.30.jar 双击运行,选择 Eclipse 安装路径完成安装
- 配置 Eclipse 编译器参数:
添加 `-Djdt.annotation.processing.enabled=true` 和 `-Djdt.compiler.annotation.processing.enabled=true`
3. 验证兼容性的示例代码
创建一个简单的实体类和启动类,验证 Lombok 注解是否生效:
代码验证测试
package com.java265.demo;
import lombok.Data;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class LombokDemoApplication {
public static void main(String[] args) {
SpringApplication.run(LombokDemoApplication.class, args);
}
@GetMapping("/test")
public User testLombok() {
// 验证@Data注解生成的setter/getter
User user = new User();
user.setId(1L);
user.setName("测试用户");
return user; // 正常返回说明Lombok生效
}
// Lombok注解实体类
@Data // 包含getter/setter/toString/equals/hashCode等
static class User {
private Long id;
private String name;
}
}
启动项目后访问 `http://localhost:8080/test`,能正常返回 `{"id":1,"name":"测试用户"}` 即表示配置成功。
1. 核心依赖:
Lombok 1.18.30 需指定 `provided`(Maven)/`compileOnly`(Gradle)作用域,
避免打包冲突;
2. 关键参数:
添加 `lombok.jakartaEdition=true`
适配 Spring Boot 3.x 的 Jakarta EE 规范;
3. 环境要求:
必须使用 JDK 17+(Spring Boot 3.x 最低要求),
并在 IDE 中开启注解处理功能。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


