Hon*_*dek 150 compiler-errors upgrade lombok spring-boot java-21
升级到JDK 21后,我的Spring Boot项目出现以下编译错误:
Fatal error compiling: java.lang.NoSuchFieldError:
Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid'
Run Code Online (Sandbox Code Playgroud)
Hon*_*dek 253
罪魁祸首就是龙目岛。与 JDK 21 兼容的最小 Lombok 版本是1.18.30.
这意味着最小的 Spring Boot 版本是3.1.4,除非您想干预 Spring Boot 自动配置并在项目中设置与中定义的Spring Boot BOM不同的 Lombok 版本spring-boot-dependencies不同的 Lombok 版本。
请参阅:[BUG] Lombok 1.8.26 与 JDK 21 不兼容 #3393
Aru*_*dev 17
我按照这里的第一个答案进行了以下更改。以前,它默认使用 Lombok 版本 1.18.20,当我从 Spring Boot 2.XX 迁移到 3.3.3 时,我需要提供最新版本来解决问题。
在执行mvn dependency:tree时,您可以查看较低版本的来源,以及是否要排除该版本和新版本,或者只是添加新版本并再检查一次。仍然拉动旧版本。如果没有,只需添加一个新的,如下所示。到目前为止,这个解决方案没有任何问题。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
119539 次 |
| 最近记录: |