已安装Lombok仍提示“Cannot resolve symbol 'Slf4j'”及编译错误求解决
以下是你未尝试过的排查和解决方法:
确认构建工具的Lombok依赖配置正确
若使用Maven,检查pom.xml中是否正确引入依赖,注意scope需覆盖测试环境:<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>与IDEA/JDK兼容的版本</version> <scope>provided</scope> </dependency>若使用Gradle,检查
build.gradle配置,确保测试环境也引入注解处理器:dependencies { compileOnly 'org.projectlombok:lombok:兼容版本号' annotationProcessor 'org.projectlombok:lombok:兼容版本号' testCompileOnly 'org.projectlombok:lombok:兼容版本号' testAnnotationProcessor 'org.projectlombok:lombok:兼容版本号' }注意Lombok版本需与你的IDEA、JDK版本匹配(如JDK17建议用Lombok 1.18.22及以上)。
强制刷新构建工具依赖
Maven:执行命令mvn clean install -U,强制更新依赖并重新构建。
Gradle:执行./gradlew clean build --refresh-dependencies(Windows系统用gradlew.bat),清理旧构建文件并刷新依赖。清理IDEA缓存并重启
打开IDEA,依次点击File->Invalidate Caches...,勾选Clear file system cache and local history,点击Invalidate and Restart,彻底清理缓存后重启IDE。检查多模块项目的依赖继承
若是多模块项目,确认父模块的Lombok依赖已正确传递给子模块,或子模块已单独引入Lombok依赖,避免子模块测试代码因依赖缺失无法识别注解。手动指定注解处理器路径
打开IDEA设置:Build, Execution, Deployment->Compiler->Annotation Processors,勾选Enable annotation processing后,点击Add按钮,选择本地仓库中Lombok的jar包路径(如Maven仓库的org/projectlombok/lombok/对应版本/lombok-xxx.jar)。检查JDK版本兼容性
部分Lombok版本对JDK版本有要求,如JDK9+需要Lombok 1.18.10及以上,JDK17需要Lombok 1.18.22及以上。确认JDK与Lombok版本匹配,必要时调整Lombok版本。检查测试类的依赖范围
若测试代码中使用@Slf4j,确保Lombok依赖的scope包含测试环境,比如Maven中若仅设置<scope>compile</scope>,测试代码会无法识别,需改为<scope>provided</scope>或单独添加test范围的依赖。
内容的提问来源于stack exchange,提问作者evatiwari

