引言
正如标题所说,我在一个多模块的maven项目中引用了@Slf4j注解、@Data注解,但是注解都是报红的,报错信息为无法解析该符号。
排查过程
因为无法解析符号,一般就是包没导入。可是我看了上面的import语句,发现有导包,而且对应的包名对的。但是这个包名是红的。
那是不是相关依赖没引入呢?去pom.xml文件中,看到有引入lombok依赖。
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId>
</dependency>
并且父工程中也有对该依赖进行管理,版本是1.18.20,我就把版本改成了1.8.30(之前因为有过lombok版本不高导致的问题,所以改得很麻利)。
改完后,点击刷新,还是不行。这时我就去网上搜索,有人说是lombok插件没安装,这个我安装了,所以不是;有人说要启用注解,我一直都是启用的,所以不是;有人说要在编译器的共享虚拟机选项中添加-Djps.track.ap.dependencies=false参数,加上了,也没法解决。
根源确定
最后在我一筹莫展时,我看到了橙红色的target文件夹,终于想到会不会是缓存原因,因为缓存中的旧信息没有及时更新而导致的。
清除了缓存后,再次启动项目,发现报错的地方都没了,又是好起来了。
解决方案实施
在IDEA中,点击菜单的文件 => 使缓存失效 ,全部勾选,点击 失效并重启。