253

我正在尝试在使用 IntelliJ IDEA 11 开发的项目中使用Lombok

我已经为 IDEA 安装了 3rd-party 插件,它似乎工作正常,因为 IDEA 可以看到所有自动生成的方法/字段。

所以我有一个使用 Slf4j 的类。我是这样注释的

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class TestClass
{
    public TestClass()
    {
        log.info("Hello!");
    }
}

但是当我构建我的项目编译器吐出:cannot find symbol variable log.

你能告诉我我在这里缺少什么吗?

更新:原来是 RequestFactory 注释过程失败了。

input files: {com.zasutki.courierApp.server.TestServlet, com.mine.courierApp.server.model.DatastoreObject}

annotations: [javax.inject.Singleton, javax.inject.Inject, lombok.Getter, lombok.Setter, com.googlecode.objectify.annotation.Id, com.googlecode.objectify.annotation.OnSave]

Processor com.google.web.bindery.requestfactory.apt.RfValidator matches [lombok.Getter, com.googlecode.objectify.annotation.Id, javax.inject.Inject, lombok.Setter, com.googlecode.objectify.annotation.OnSave, javax.inject.Singleton] and returns false.

cannot find symbol variable log

关于解决方法的任何想法?

Update2:也许这不是读者想听到的,但我最终切换到了Scala

4

40 回答 40

482

我已经通过在 IDEA 12 中设置复选框来修复它Enable annotation processing

设置 -> 编译器 -> 注释处理器

对于 IDEA 2016.2:

首选项... > 构建、执行、部署 > 编译器 > 注释处理器

启用后,运行Build -> Rebuild Project以识别注释并消除错误。


对于 IDEA 2019.2.1,根据项目的配置方式,安装 Project Lombok 插件可能还不够。这是将 Project Lombok 与 IntelliJ IDEA 结合使用的另一种方法:

  1. 访问https://projectlombok.org/download
  2. 将 JAR 文件下载到项目 lib 目录中(例如,$HOME/dev/java/project/libs)。
  3. 启动 IDE。
  4. 单击文件设置
  5. 展开构建、执行、部署编译器注释处理器
  6. 确保选中启用注释处理。
  7. 确保根据项目的模块设置选择Store 生成相对于的源(如果模块输出目录不起作用,请返回并尝试其他设置)。
  8. 单击应用
  9. 单击插件
  10. 单击市场
  11. 将搜索字段设置为:lombok
  12. 安装龙目岛
  13. 单击确定
  14. 如果出现提示,请重新启动 IDE。
  15. 单击文件项目结构
  16. 选择
  17. 单击+符号以添加新项目库(或按Alt+ Insert)。
  18. 选择Java
  19. 将路径设置为:$HOME/dev/java/project/libs/lombok.jar
  20. 单击确定
  21. 选择要应用的模块。
  22. 单击确定
  23. (可选)重命名lombokProject Lombok 1.18.8.
  24. 单击确定

该项目现在可以从lombok包中导入并使用 Project Lombok 注释(例如,lombok.Setterlombok.Getter)。

于 2013-01-29T12:09:09.020 回答
74

启用注释处理将使其工作

但如果您在Mac上,请确保从两个可用位置启用注释处理(勾选复选框)。

1.) Intellij Idea -> 首选项 -> 编译器 -> 注释处理器

2.)文件->其他设置->默认设置->编译器->注释处理器

于 2015-05-11T08:21:48.123 回答
74

解决此问题的图片表示。

首先启用注释处理器并尝试。这可能会也可能不会。 在此处输入图像描述

发布后,您可以从 intellij 安装 lombok 插件,(安装后 Intellij 将重新启动以启用插件,因此请确保保存您的工作。(Intellij 在重新启动之前会保存所有更改,只是为了安全起见。) ) 截图如下:

在此处输入图像描述

于 2017-03-15T12:06:17.887 回答
53
  1. 确保它已正确添加到您的项目中。

Gradle 的示例:

 dependencies {
     compileOnly 'org.projectlombok:lombok:1.18.8'
     annotationProcessor 'org.projectlombok:lombok:1.18.8'
     ...
 }
  1. 为您的 IDE 安装 Lombok 插件
  2. 检查IDE(IntellijIdea)中的“启用注释处理”复选框,不知道Eclipse等其他IDE是否有类似的东西。
于 2019-07-14T16:42:50.967 回答
22

在最新的 Gradle 版本中,您应该使用 annotationProcessor:

compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok:1.18.8'
于 2020-01-29T14:02:31.723 回答
18

我正在使用 IntelliJ IDEA 2020.3(社区版)

在这里,除了安装 Lombok 插件并启用注释(由其他答案解释)。我还需要将标志设置-Djps.track.ap.dependencies=false为构建过程选项¹。

我不需要使用 -javaagent 方法,也不需要设置类路径。

¹。转到:文件 | 设置 | 构建、执行、部署 | 编译器 | “共享构建过程 VM 选项”字段

参考:

于 2020-12-22T19:55:41.197 回答
12

仅供参考使用IntelliJ 2018.3,我按照三个步骤解决了这个问题(使用@Data注释插入getter/setter):

  1. 文件 -> 设置 -> 构建、执行、部署 -> 注释处理器 -> 启用注释处理;

在此处输入图像描述

请记住应用更改。

  1. 在同一设置对话框中安装插件lombok ;

在此处输入图像描述

  1. 现在看来已经足够好了,它需要重新启动 IntelliJ,然后重建您的项目。

最好的祝愿 :)

于 2019-02-19T04:43:22.583 回答
9

如果您已按以下方式检查了这两个步骤

  1. 启用注释:这是在 IntelliJ 首选项中完成的检查。
  2. 将 lombok 导入 IntelliJ classPath (Preferences -> Plugins)

并且仍然出现错误,请检查编译器- 如果它是JAVACECLIPSE

您可以在 Preferences -> Build,Execution,Deployment -> Compiler -> Java Compiler 中检查编译器。

将使用编译器更改为 Javac(如果是 Eclipse)。这对我有用。

于 2017-03-27T13:32:53.070 回答
7

如此处所述,引用:“您应该激活外部编译器选项并启用注释处理器或禁用外部编译器并禁用所有注释编译器以与 lombok 一起使用”。这解决了我的问题。请注意,我在收到此错误之前添加了 Scala 插件,因此我怀疑该插件更改了上述某些设置。

于 2013-07-14T08:14:05.867 回答
7

there is a plugin for intellij. see here: https://projectlombok.org/download.html

于 2015-08-07T13:45:06.733 回答
6

在 pom.xml 中包含以下内容对我有用:

<build>
        <defaultGoal>spring-boot:run</defaultGoal>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <annotationProcessorPaths>
...
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>${lombok.version}</version>
                        </path>       
                    </annotationProcessorPaths>
                </configuration>
            </plugin>
</build>
于 2020-07-12T18:40:19.080 回答
5

您是否将 lombok 作为项目的依赖项?在项目编译期间,lombok.jar 必须位于类路径中,该项目使用任何 lombok 注释。

于 2012-02-24T20:18:38.633 回答
3

上面的任何解决方案都对我不起作用。我添加 <scope>provided</scope>到 pom.xml 中的依赖项并且它起作用了。

<dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.20</version>
        <scope>provided</scope>
    </dependency>
于 2018-02-08T20:36:10.763 回答
3

我在Mac

这是我的 IntelliJ IDEA 和 Mac 版本 - IntelliJ IDEA 2017.1.5 Build #IU-171.4694.70 --- Mac OS X 10.12

除了在这两个地方启用注释处理(勾选复选框)。

1.) Intellij IDEA -> 首选项 -> 编译器 -> 注释处理器

.

2.)文件->其他设置->默认设置->编译器->注释处理器

我也必须安装 Lombok 插件才能使其工作。

3.) Intellij IDEA -> Preferences -> Plugins ->Browse Repositories-> 搜索“Lombok”-> install plugin -> Apply and restart IDEA

于 2018-01-26T22:28:03.960 回答
3

1、为IDEA安装lombok插件

Intellij Idea -> 首选项 -> 插件 -> 输入 lombok -> 在存储库中搜索 -> 安装 -> 重启 IDEA

二、配置lombok插件

启用注释处理将使其工作

但如果您使用的是 Mac,请确保在以下两个位置启用注释处理:

Intellij Idea -> Preferences -> Build, Execution, Deployment -> Compiler -> Annotation Processors,勾选“Enable annotation processing”。File -> Other Settings -> Default Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors,勾选“Enable annotation processing”。

于 2017-12-07T06:14:08.707 回答
3

对于那些仍然有麻烦的人:

除了启用注释处理器和安装 IntelliJ Lombok 插件的上述步骤之外,我还必须构建 -> 重建项目。

于 2016-08-21T15:14:36.473 回答
1

如果您完成了此问题中提到的所有操作,但仍然失败请不要忘记删除项目下的/target文件夹。如果它仍然失败,请重新启动您的 IDE。如果它仍然失败重新启动您的计算机。

于 2020-10-25T11:59:18.793 回答
1

除了在所有答案中提到之外,我必须在 pom.xml 配置中添加以下代码以使 mvn clean install 工作。在添加此代码之前,我无法找到 getter 和 setter 的符号。

                    <annotationProcessorPath>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                        <version>1.18.8</version>
                    </annotationProcessorPath>
于 2020-05-13T06:57:30.517 回答
1

在尝试了这里的所有建议之后,我还找到了另一种解决方案。似乎有时 IDEA 无法从项目类路径中获取处理器。

因此,在Annotation Processors设置选项卡上,您必须手动指定Processor path

于 2020-02-11T21:25:19.720 回答
1

Jetbrains IntelliJ IDEA 编辑器在 2020.3 版本中与没有插件的 lombok 兼容。

我使用的是 2020.2 版本,我更新到 2020.3 它就这样工作。

于 2021-02-17T11:50:42.137 回答
1

在将 IDEA 更新到 2018.3 后,我遇到了这个问题。我不得不更新所有现有的插件

于 2019-02-28T09:10:41.963 回答
1

即使您已正确配置它并且它在库和 Gradle 依赖项列表中可见,IntelliJ 仍然可能在类路径中没有它。或者它在那里,但配置了不同的范围(例如:测试而不是编译。)

首先,请确保您已安装插件并启用注释处理,如其他答案中所述。

如果您仍然无法识别注释,请将光标放在其上,按 ALT+ENTER(或 OPTION+ENTER)并查看是否有菜单选项Add library: Gragle: org.projectlombok:lombok:VERSION to class path。如果你能看到它,选择这个,它可能会解决你的问题。

您可以检查库及其范围:项目设置/模块/依赖项选项卡(在那里搜索 lombok)

于 2016-10-19T01:32:46.200 回答
1

If none of the above did'nt work , then try to change File->Project Structure->Project->Project Language Level > 8 Lambda,type annotations (Not SDK Default 8)

This worked for me .

于 2021-12-09T21:47:29.230 回答
0

我在使用 JDK8 构建时遇到了类似的问题,将项目设置回 JDK7 并且工作正常。可能是旧版本的 Lombok 无法在 JDK8 下编译。

于 2015-03-30T23:29:19.510 回答
0

您可以cannot find symbol variable log通过执行以下操作在 IntelliJ IDEA 2017.1.3 中使用 lombok 进行修复:

IntelliJ Preferences > Build, Execution, Deployment > Annotation Processors > [Check] Enable annotation processing > Apply

于 2018-02-26T05:30:04.597 回答
0

我不得不禁用@Document我刚刚添加的注释。我正在将我的项目转换为使用 Mongo 而不是 Postgres,它以前可以工作,但它似乎@Document与 Lombok 的冲突@Getter

于 2021-10-16T09:26:35.923 回答
0

如果 lombok 库设置正确,如上所述,单击无法编译的注释,Alt-Enter,将出现正确的导入,代码将编译。- 我花了一段时间才弄清楚。我把它放在这里是为了以防人们可能会错过简单的显而易见的事情。

于 2019-11-11T03:07:55.060 回答
0

如果您尝试了此处提供的所有解决方案但仍然无法编译源代码,请查看此处:静态导入构建器类会破坏 Maven 中的字节码生成- 如果它具有此类静态导入,请查看您的源代码。这会影响 maven 插件,因此在 IntelliJ IDEA 之外的其他构建系统上编译将失败。

于 2017-07-17T16:20:13.480 回答
0

我遇到了类似的问题。以下对我有用。

下载(从这里https://projectlombok.org/download)并将 jar 添加到您的项目结构中。

步骤:文件 -> 项目结构 -> 全局库

于 2018-09-25T18:42:24.653 回答
0

这发生在我身上是因为运行构建过程的 JDK 版本太低。Lombok 是使用 JDK 1.7 或更高版本构建的。构建必须使用 Java 1.7 或更高版本运行。

在此处输入图像描述

于 2021-09-15T18:55:33.977 回答
0

我认为我还没有阅读答案中的最后一步。(Mac + IntelliJ Ultimate 2020.1)在我的情况下,这只是一个愚蠢的原因,但这些原因可能会占用大部分时间,因为错误并不直接涉及它。

删除并重新克隆项目后,我出现了同样的 lombok 错误。执行此线程前面提到的步骤后,我仍然遇到错误,然后我发现我的 SKD 默认为 11 版。我将其改回 1.8 并且一切正常。

文件 --> 项目设置 --> 项目 我将项目 SDK 和项目语言级别更改为 1.8

PS 在这个 IntelliJ 版本中,mac 上默认设置的位置与之前提到的不同:文件 --> 新项目设置 --> 新项目的首选项 --> 构建、执行、部署 --> 编译器 --> 注释处理器 --> 'check' 启用注释处理

希望这对任何人都有帮助

于 2021-03-09T08:09:17.160 回答
0

对我来说什么有效:

  1. 我全新卸载了安装的 Lombok 插件
  2. 我勾选了“启用注释插件”
  3. 我在同一页面中选择了“从项目类路径中获取处理器”
于 2020-05-16T07:56:20.117 回答
0

就我而言,我已经准备好下面提到的所有东西,但它仍然无法正常工作。

  1. 我已经正确安装了 lombok 插件
  2. 注释处理器,也检查了。
  3. 我的 Java 编译器设置为 JAVAC

为了解决我的问题,我必须

  1. 截至 2017 年 10 月 7 日,将 lombok 更新到最新版本 (v0.15)。
  2. 重新启动 IntelliJ。
  3. 重建项目。

请参阅下面有关如何更新和重建项目的屏幕截图。

如何更新龙目岛

如何重建项目

于 2017-10-07T01:21:40.393 回答
0

对于 MacOS 上的 Eclipse 用户,请执行此操作。它对我有用。

  1. 将 lombok.jar 复制到Eclipse.app/Contents/MacOS目录中。
  2. 添加-javaagent:lombok.jar到 Eclipse.app/Contents/Eclipse/eclipse.ini 文件的末尾。
  3. 重新启动 Eclipse 并在项目属性中启用“注释处理”。

参考这个

于 2019-11-26T21:39:07.123 回答
0

安装以下插件并重新启动 IDE 以解决错误:

File -> Settings -> Plugins-> Browse Repositories -> Lombok Plugin

启用注释处理器:

File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors
File -> Other Settings -> Default Settings -> Compiler -> Annotation Processors
于 2018-09-21T08:50:14.520 回答
0
  1. 添加龙目岛插件。
  2. 就我而言,只是干净整洁。
于 2022-01-17T09:15:30.533 回答
0

对于 IntelliJ IDEA 2020.1.1,启用 Kotlin 插件修复了此问题。

于 2020-05-20T09:15:47.683 回答
0

我的问题是 IntelliJ IDEA 中 Lombok 插件的捆绑版本与 IntelliJ IDEA 本身的版本不兼容。我将 IntelliJ 降级到 2019.1.4 并且它有效。

在此处输入图像描述

于 2022-01-20T15:25:52.573 回答
0

启用注释器处理器后,我必须更新到最新版本的 lombok:

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.16</version>
    </dependency>

Intellij 版本:

IntelliJ IDEA 2020.3 (Community Edition)
Build #IC-203.5981.155, built on November 30, 2020
Runtime version: 11.0.9+11-b1145.21 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 10.16
GC: ParNew, ConcurrentMarkSweep
Memory: 1981M
Cores: 8
Non-Bundled Plugins: org.intellij.plugins.hcl, Lombook Plugin, org.sonarlint.idea, in.1ton.idea.spring.assistant.plugin, org.jetbrains.kotlin, gherkin, cucumber-java
于 2020-12-17T08:53:47.283 回答
-3

要使其正常工作,只需为 IntelliJ 安装“Lombok 插件”。正如其他一些评论者所建议的那样,您不需要对启用“注释处理器”做任何事情。(我已经使用最新版本的 IntelliJ IDEA 对此进行了测试,目前是 2017.1.2)。要安装插件,请转到设置,然后插件,然后单击“浏览存储库”按钮,然后搜索“Lombok”,然后安装 Lombok 插件。系统将提示您重新启动 IntelliJ。之后,您应该能够从 IntelliJ 编译,并且您不会再收到任何错误检查。

于 2017-04-28T21:17:36.050 回答