背景
在运行某一个项目时候,命名已经采用@Slf4j注释,调用log.info()没有显示报错,但运行时候显示找不到符号
问题可能
这个注解通常用于自动创建一个SLF4J的日志记录器变量log。如果编译器无法找到这个log变量,可能是由于以下几个原因之一
1. Lombok依赖未正确添加
首先确保项目中已包含正确的Lombok依赖,并且确保该依赖是可用版本
以下是在Maven中的pom.xml文件中的依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
<version>1.18.36</version>
</dependency>
2. Lombok插件安装
确保IDEA中已经安装了Lombok插件,可以通过File -> Settings -> Plugins进行搜索
3. JDK版本问题
确保项目中使用的JDK版本是jdk8 以上的版本
pom.xml中的配置
点击Project Structure 查看项目jdk配置,看看跟pom文件中的是否一致
4. Annotation Processors未启用
在IDEA 中,要确保启用了Annotation Processors。可以通过以下路径进行设置File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors
使用从项目类路径即可,不要自定义处理器路径
更改设置后要执行mvn clean install命令来清理并重新构建项目
一般在IDEA右侧的Maven中选择clean双击即可
5. 重新导入和构建项目
有时候进行简单的清理重建项目即可解决。
执行mvn clean install命令来清理并重新构建项目
6. 其他前在问题
还有可能是路径中某些冲突或者Lombok版本等问题。
总结
首先要先见检查上述的问题,确定是哪个环节出现问题,采用相应的措施。
我遇到的问题是因为Annotation Processors启用了,但使用了自定义路径导致报错。
如果用了以上方法仍不能解决,也欢迎大家评论反馈。