66

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

为了确保这不是设置问题,我创建了一个非常简单的项目,并确认在简单的测试项目中也出现了同样的问题。

我的版本: Gradle: gradle-2.3-all via Gradle wrapper
Intellij IDEA: IU-141.713
Lombok Plugin: 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 运行“应用程序”或单元测试时,我遇到了这些错误。

Getter 和 setter 存在,但不存在???

4

10 回答 10

100

您需要启用注释预处理器。 请参阅此处的文档

此外,如果尚未安装,您应该安装 lombok 插件

于 2015-05-01T18:06:28.950 回答
15

我通过执行以下操作设法解决了这个问题:

  • 安装 IDEA Lombok 插件
  • 启用注释处理请参阅文档
  • 在您的系统上安装最新的 Maven 并配置 IntelliJ 以使用它(而不是捆绑的)请参阅文档
于 2016-01-27T14:16:00.093 回答
8

它可以在构建文件夹中看到。

在此处输入图像描述

于 2015-05-01T05:45:16.520 回答
5

就我而言,问题是在通过 Toolbox 更新 IntelliJ 后发生的。

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

但是,重新安装 lombok 插件有帮助!

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

Lombok 插件更新日志摘录:

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

于 2018-04-06T09:11:41.017 回答
4

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

在此处输入图像描述

在此处输入图像描述

于 2019-03-01T16:54:06.667 回答
2

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

首选项 -> 构建、执行、部署 -> Gradle,

如果您使用本地 gradle 分发,请更改为使用默认 gradle wrapper

当我的项目的 gradle 包装器是 4.10.2 但我的本地 gradle 版本是 5.1.1 时出现此错误,我在将其更改为使用默认 gradle 包装器后解决了它。

于 2019-01-27T11:54:30.400 回答
2

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

运行全新安装以生成带有 lombok 代码生成更改的模型的类文件。

于 2019-12-15T05:20:45.140 回答
1

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

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.2</version>
    <scope>provided</scope>
</dependency>
于 2019-03-20T10:13:36.240 回答
0

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

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

于 2016-11-03T04:04:05.603 回答
0

尝试点击lombok import,然后输入alt+enter,然后会出现短列表,选择添加maven依赖,然后屏幕右下角会出现maven应该启用的图标,点击自动启用。对我来说,它奏效了。

于 2019-07-23T19:12:12.107 回答