构建失败:'com.sun.tools.javac.tree.JCTree qualid' 错误求助
解决java.lang.NoSuchFieldError: JCTree$JCImport无qualid字段的问题
这个错误确实和Lombok版本与JDK/编译环境的兼容性直接相关,以下是针对性的解决步骤:
升级Lombok到兼容版本
Spring Boot 2.7.x的依赖管理中,推荐的Lombok稳定版本是1.18.24及以上,你的1.18.18版本对JDK 12+的javac内部API适配不足。直接修改项目依赖配置:
Maven示例:<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.24</version> <scope>provided</scope> </dependency>Gradle示例:
compileOnly 'org.projectlombok:lombok:1.18.24' annotationProcessor 'org.projectlombok:lombok:1.18.24'同步IDE的Lombok插件配置
如果你用IntelliJ IDEA,确保Lombok插件版本与项目依赖的Lombok版本匹配,同时开启注解处理器:- 打开
Settings > Build, Execution, Deployment > Compiler > Annotation Processors - 勾选
Enable annotation processing - 若插件版本过低,到插件市场升级Lombok插件至最新版
- 打开
清理缓存并重新构建
- 执行项目构建工具的清理命令:
mvn clean(Maven)或gradle clean(Gradle) - 清理IDE缓存:IDEA中选择
File > Invalidate Caches...,勾选Clear file system cache and local history后重启IDE
- 执行项目构建工具的清理命令:
对齐JDK与框架兼容版本
ThingsBoard 3.6官方推荐使用JDK 11或17(LTS版本),Spring Boot 2.7.x也完美适配这两个版本。优先切换到JDK 11,配合升级后的Lombok版本,能最大程度避免兼容性问题。
内容的提问来源于stack exchange,提问作者AlexMoshi
相关产品推荐
相关产品推荐

