解决:使用Lombok的@Slf4j注解,显示无法解析符号,但是程序能够正常运行

引言

正如标题所说,我在一个多模块的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中,点击菜单的文件 => 使缓存失效 ,全部勾选,点击 失效并重启。

### 解决 Java Lombok `EqualsAndHashCode` 无法解析的问题 当遇到 `Cannot resolve symbol 'EqualsAndHashCode'` 错误时,通常是因为 IDE 或编译器未能识别 Lombok 注解。以下是几种可能的原因及解决方案: #### 1. 缺少 Lombok 插件安装 确保已正确安装并配置了 Lombok 插件。对于 IntelliJ IDEA 用户来说,在插件市场中查找名为 "Lombok Plugin" 的插件,并完成其安装与激活[^1]。 #### 2. Maven/Gradle 中缺少依赖项 确认项目的构建文件(如 pom.xml 对于 Maven 或 build.gradle 对于 Gradle)已经包含了最新的 Lombok 库作为依赖项。例如,在 Maven 下应添加如下声明: ```xml <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.24</version> <!-- 版本号需根据实际情况调整 --> <scope>provided</scope> </dependency> ``` 而对于 Gradle,则应在 dependencies 块内加入相应语句: ```groovy implementation('org.projectlombok:lombok:1.18.24') annotationProcessor 'org.projectlombok:lombok' ``` #### 3. 更新项目索引或重启IDE 有时即使完成了上述操作仍可能出现此错误提示,此时建议尝试刷新项目索引或者直接重新启动开发环境来解决问题。这有助于让 IDE 正确加载新的库资源以及更新内部缓存数据[^2]。 #### 4. 检查编译选项设置 部分情况下还需要特别注意某些特定版本的 JDK 可能存在兼容性问题;另外就是确保启用了 `-parameters` 参数以便支持参数名称反射功能,这对于 Lombok 工作至关重要[^3]。 通过以上措施应该能够有效解决 `Cannot resolve symbol 'EqualsAndHashCode'` 这一常见问题。如果依旧存在问题,请进一步检查是否有其他潜在因素影响到了 Lombok 功能的正常使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值