Java8升级至17后SpringBoot Maven项目Lombok构建报错求助
Java 8升级到17后Lombok构建报错的解决办法
核心原因
Java 17引入模块化系统(JPMS),旧版本Lombok无法访问com.sun.tools.javac.processing.JavacProcessingEnvironment这类内部API,导致注解处理器失效。
1. 升级Lombok至兼容Java 17的版本
必须使用Lombok 1.18.20及以上版本,该版本开始支持Java 16+的模块化环境。在pom.xml中更新依赖:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> <!-- 或最新稳定版 --> <scope>provided</scope> </dependency>
2. 配置Maven编译器插件适配Java 17
在pom.xml的build节点下,确保maven-compiler-plugin正确指定Java版本,并显式声明Lombok作为注解处理器:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <!-- 需支持Java 17的版本 --> <configuration> <source>17</source> <target>17</target> <release>17</release> <!-- 统一指定Java版本 --> <annotationProcessorPaths> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> <!-- 与依赖版本一致 --> </path> </annotationProcessorPaths> </configuration> </plugin> </plugins> </build>
3. 同步IDE配置(若使用IDE构建)
- IntelliJ IDEA:
- 确保Lombok插件为最新版本(Settings → Plugins → Lombok)
- 开启注解处理(Settings → Build, Execution, Deployment → Compiler → Annotation Processors → 勾选"Enable annotation processing")
- 项目SDK切换为Java 17(Project Structure → Project Settings → Project)
- Eclipse:
- 安装最新版Lombok插件
- 配置项目JDK为17,并在项目属性中开启注解处理
4. 清理缓存后重新构建
执行以下命令强制清理并构建,避免旧依赖缓存干扰:
mvn clean install -U
内容的提问来源于stack exchange,提问作者Mansuri Nurulhuda
相关产品推荐
相关产品推荐

