使用JDK19+Maven3.8.1搭建Spring Boot项目时无法安装Lombok1.18.10
解决JDK19下Lombok 1.18.10安装失败的问题
核心原因
Lombok 1.18.10是2019年发布的旧版本,对JDK 9及以上的模块化系统支持不完善,而JDK19的模块访问限制更严格,导致Lombok无法访问jdk.compiler模块下的内部类,触发报错。
解决方案
方案1:升级Lombok到兼容JDK19的版本(推荐)
这是最直接有效的方法,Lombok从1.18.22版本开始优化了对高版本JDK的模块化支持,1.18.28及以上版本完全兼容JDK19。
在Maven的pom.xml中修改Lombok依赖:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.28</version> <scope>provided</scope> </dependency>
如果用到Lombok Maven插件,也同步升级版本:
<build> <plugins> <plugin> <groupId>org.projectlombok</groupId> <artifactId>lombok-maven-plugin</artifactId> <version>1.18.28.0</version> </plugin> </plugins> </build>
方案2:保留旧Lombok版本,添加JVM编译参数(不推荐)
如果必须使用1.18.10,需要给Maven编译阶段添加JVM参数,允许jdk.compiler模块暴露内部类给Lombok:
在pom.xml的maven-compiler-plugin中配置参数:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>19</source> <target>19</target> <compilerArgs> <arg>--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg> <arg>--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg> <arg>--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg> </compilerArgs> </configuration> </plugin> </plugins> </build>
这种方法需要手动维护多个导出参数,后续JDK版本升级可能再次出现兼容问题,仅作为临时方案。
方案3:确认IDE的Lombok配置
如果是IDE(如IDEA、Eclipse)内编译报错,需同步检查:
- 确保IDE的Lombok插件版本与依赖版本一致
- 开启注解处理开关:
- IDEA:
File → Settings → Build, Execution, Deployment → Compiler → Annotation Processors,勾选Enable annotation processing - Eclipse:
Window → Preferences → Java → Annotation Processing,勾选Enable annotation processing
- IDEA:
内容的提问来源于stack exchange,提问作者user20893783
相关产品推荐
相关产品推荐

