Java IntelliJ IDEA无法看到Lombok生成的代码

Java IntelliJ IDEA无法看到Lombok生成的代码,java,intellij-idea,junit4,lombok,intellij-lombok-plugin,Java,Intellij Idea,Junit4,Lombok,Intellij Lombok Plugin,我有一个基于Gradle的项目,使用lombok。我已将此项目导入IntelliJ IDEA 14.1(使用导入外部模型导入方法)。我可以在Gradle中毫无问题地运行JUnit4单元测试,但是IntelliJ在查看Lombok生成的getter时似乎有问题。这使我无法在IDEA中运行测试 为了确保这不是一个设置问题,我创建了一个,并确认相同的问题发生在简单测试项目中 我的版本: Gradle:Gradle-2.3-全部通过Gradle包装 Intellij IDEA:IU-141.713 Lo

我有一个基于Gradle的项目,使用lombok。我已将此项目导入IntelliJ IDEA 14.1(使用导入外部模型导入方法)。我可以在Gradle中毫无问题地运行JUnit4单元测试,但是IntelliJ在查看Lombok生成的getter时似乎有问题。这使我无法在IDEA中运行测试

为了确保这不是一个设置问题,我创建了一个,并确认相同的问题发生在简单测试项目中

我的版本: Gradle:Gradle-2.3-全部通过Gradle包装
Intellij IDEA:IU-141.713
Lombok插件:0.9.2

我错过了什么

更新通过看不见我不是指物理上看不见。我的意思是:

/home/meeee/workspace/junit-lombok-idea/lib/src/main/java/com/example/jumbokea/Main.java
Error:(10, 11) java: cannot find symbol
  symbol:   method setIntField(int)
  location: variable sc of type com.example.jumbokea.SomeClass
Error:(12, 41) java: cannot find symbol
  symbol:   method getIntField()
  location: variable sc of type com.example.jumbokea.SomeClass
Error:(14, 33) java: constructor AnotherClass in class com.example.jumbokea.AnotherClass cannot be applied to given types;
  required: no arguments
  found: float,com.example.jumbokea.SomeClass
  reason: actual and formal argument lists differ in length
Error:(16, 46) java: cannot find symbol
  symbol:   method getSomeFloat()
  location: variable ac of type com.example.jumbokea.AnotherClass
Error:(17, 43) java: cannot find symbol
  symbol:   method getSomeClass()
  location: variable ac of type com.example.jumbokea.AnotherClass
反编译的类显示了getter和setter,但是当我让IntelliJ运行“app”或单元测试时,我会遇到这些错误


可以在build文件夹中看到它


您需要启用注释预处理器。


此外,如果尚未安装lombok插件,则应安装该插件。我通过执行以下操作解决了此问题:

  • 安装IDEA Lombok插件
  • 启用批注处理
  • 在您的系统上安装最新的Maven,并配置IntelliJ以使用它(与捆绑版相反)

对于Lombok,IntelliJ允许您搜索变量的用法,其中还包括getter和setter。只需单击变量名和
选项/alt+f7


这适用于Intellij 2016和Lombok插件0.13.16。我不确定旧版本。

在我的情况下,问题发生在通过工具箱更新IntelliJ之后

“启用注释处理”标志已关闭(尽管导入了以前IntelliJ版本的设置),因此我将其打开。 这并没有解决重新启动、清理、生成后的问题

然而,重新添加lombok插件有帮助

编辑:似乎是lombok插件与IntelliJ 2018.1的兼容性问题,IntelliJ用户需要将插件升级到0.17

Lombok插件更改日志摘录:

Lombok支持插件更新至v0.17: -修复(#465):修复与IntelliJ 2018.1的插件兼容性


启用注释处理器并安装lombok插件后,如果lombok生成的方法上仍然出现“找不到符号错误”,请尝试检查gradle配置,该配置位于

首选项->构建、执行、部署->渐变

如果您使用的是本地渐变分布,请更改为使用默认渐变包装


当我的项目的gradle包装是4.10.2,但我的本地gradle版本是5.1.1时,我遇到了这个错误,我在将其更改为使用默认gradle包装后解决了这个问题。

如另一个答案中所述,请安装
Lombok
插件并启用注释处理器。在IntelliJ中按double
SHIFT
,并在搜索框中键入
启用注释处理。然后,勾选该框并重新启动IDE


在pom.xml中添加以下依赖项以及其他答案中提到的其他解决方案


org.projectlombok
龙目
1.18.2
假如

尝试单击lombok import,然后按alt+enter,然后会出现短列表,选择AddMaven dependency,然后在屏幕的右下角会出现应启用maven的图标dd,单击EnableAutomatically。对我来说,它是有效的。

即使在添加了注释处理器并添加了lombok依赖项之后,也可能无法解决问题。这是因为与模型相关的类文件需要位于目标文件夹中


运行clean install为带有lombok代码生成的更改的模型生成类文件

我启用了注释处理,但不知何故它被关闭了。直到昨天下午4点左右我的时间,一切都很好,然后突然它开始显示这些错误。批注处理以某种方式被禁用。请不要忘记在启用批注预处理器后重新启动IntelliJ。这是我从Intellij Idea 2020.3开始的问题Lombok插件不再需要了,已经有了一个正确且被接受的答案。马文在这里无关紧要。我从来没有也从来没有需要过它。所有其他的解决方案对我都不起作用,所以我想我应该分享一个did@copolii由于不同的原因,可能会出现相同的问题。例如,对我来说,被接受的答案是毫无用处的。这一次救了我,这能回答你的问题吗?我觉得这很有用: