20241207jdk23下springboot+lombok无法运行的问题

背景

群友反馈lombok编译不正常

解决方案

第一个坑

注意到lombok在1.18.36刚支持jdk23

注意到jdk23开始默认关闭了annotation process

https://www.oracle.com/java/technologies/javase/23-relnote-issues.html#:~:text=annotation%20processing%20is%20only%20run%20with%20some%20explicit%20configuration%20of%20annotation%20processing%20or%20with%20an%20explicit%20request%20to%20run%20annotation%20processing%20on%20the%20javac%20command%20line.

所以在pom.xml中的properties需要增加

间接让javac参数包含 -proc:full

如果还不行可增加

手动控制插件版本

第二个坑

注意到 pom.xml=>plugins=>plugin=>artifactId=maven-compiler-plugin=>annotationProcessorPaths 必须指定版本<version>${lombok.version}</version>,否则IDEA生成的.idea/compiler.xml中lombok.jar是unknwon

参考https://youtrack.jetbrains.com/issue/IDEA-342187

若已经出错了,建议修改pom.xml后删除.idea文件夹后重新导入项目

参考

lombok的changelog

https://projectlombok.org/changelog

lombok的issue

https://github.com/projectlombok/lombok/issues/3722

spring官方的修改方式

https://github.com/arnosthavelka/spring-advanced-training/commit/29e47231f94556ff08173d992da9a4384c855816?diff=split&w=0#diff-49d7e9283623afcbf89d5cc8019b80174f5dd3379d51f01764713f5f5e69a992R20

 

0 Comments
Leave a Reply