首页 文章

可以't compile project when I'在IntelliJ IDEA下使用Lombok

提问于
浏览
145

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

我已经安装了3rd-party plugin for IDEA,它似乎正常工作,因为IDEA会看到所有自动生成的方法/字段 .

所以我有一个使用Slf4j的类 . 我这样注释了它

import lombok.extern.slf4j.Slf4j;

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

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

你能告诉我我在这里失踪了吗?

Update: 结果发现它的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 .

21 回答

  • 6

    我在IDEA 12中通过设置复选框 Enable annotation processing 修复了它:

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

    对于IDEA 2016.2:

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

  • 3

    启用注释处理将使其工作

    但是如果你在 Mac 上,请确保从 both the places 中启用注释处理(勾选复选框) .

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

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

  • 7

    图片表示解决此问题 .

    首先启用注释处理器并尝试 . 这可能有效,也可能无效 .
    enter image description here

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

    enter image description here

  • 2

    如上所述here,引用:"You should activate external compiler option and enable annotation processors or disable external compiler and disable all of annotation compilers to work with lombok" . 这解决了我的问题 . 请注意,我在收到此错误之前添加了Scala插件,因此我怀疑该插件更改了上述某些设置 .

  • 0

    intellij有一个插件 . 看到这里:https://projectlombok.org/download.html

  • 0

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

    • 启用注释:这是在IntelliJ首选项中完成的检查 .

    • 将lombok导入IntelliJ classPath(首选项 - >插件)

    然后仍然会收到错误 please check the compiler - 如果它是 JAVACECLIPSE .

    您可以在首选项 - >构建,执行,部署 - >编译器 - > Java编译器中检查编译器 .

    将Use编译器更改为Javac(如果它是Eclipse) . 这对我有用 .

  • 4

    你有lombok作为你项目的依赖吗?在编译项目期间,lombok.jar必须位于类路径上,该项目使用任何lombok-annotations .

  • 0

    对于那些仍然遇到麻烦的人:

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

  • 2

    1、install lombok plugin for IDEA

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

    2、 config lombok plugin

    启用注释处理将使其工作

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

    Intellij Idea - >首选项 - >构建,执行,部署 - >编译器 - >注释处理器,选中“启用注释处理”复选框 . 文件 - >其他设置 - >默认设置 - >构建,执行,部署 - >编译器 - >注释处理器,选中“启用注释处理”复选框 .

  • 30

    我在 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 - >首选项 - >插件 - >浏览存储库 - >搜索“Lombok” - >安装插件 - >应用并重启IDEA

  • 67

    要实现这一点,只需为IntelliJ安装“Lombok插件”即可 . 正如其他一些评论家所建议的那样,您无需执行任何启用“注释处理器”的操作 . (我使用最新版本的IntelliJ IDEA进行了测试,目前为2017.1.2) . 要安装插件,请转到“设置”,然后选择“插件”,然后单击“浏览存储库”按钮,然后搜索“Lombok”,并安装Lombok插件 . 系统将提示您重新启动IntelliJ . 之后,你应该能够从IntelliJ编译,你不会接收任何更多的错误检查 .

  • 0

    使用上述任何解决方案对我都没有用 . 我将 <scope>provided</scope> 添加到pom.xml中的依赖项并且它有效 .

    <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.20</version>
            <scope>provided</scope>
        </dependency>
    
  • 0

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

  • 311

    我有同样的问题,所以我将这里留在这里,以供将来参考我的遗忘 .

    Alt+Enter 注释 @Slf4j 注释时,我错误地选择了无效导入 . 因此,如果代码未编译,请确保导入:

    import lombok.extern.slf4j.Slf4j;

  • 0

    FWIW - 如上所述设置编译器注释时,请确保还要检查您正在使用的任何配置文件,例如“Maven默认注释处理器” .

  • 0

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

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

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

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

  • 2

    如果您尝试了此处提供的所有解决方案但仍无法编译源代码,请查看此处:Static import of builder class breaks bytecode generation in Maven - 如果有静态导入,请查看您的源代码 . 这会影响maven插件,因此编译将在IntelliJ IDEA之外的其他构建系统上失败 .

  • 0

    在我的情况下,我已经掌握了下面提到的所有内容,但仍然无法正常工作 .

    • 我正确安装了lombok插件

    • 注释处理器,也已检查 .

    • 我的Java编译器设置为JAVAC

    要解决我的问题,我必须这样做

    • 在2017年10月7日更新lombok到最新版本(v0.15) .

    • 重启IntelliJ .

    • 重建项目 .

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

    How to update lombok

    How to rebuild project

  • 1

    你可以在IntelliJ IDEA 2017.1.3中使用lombok时修复 cannot find symbol variable log

    IntelliJ首选项>构建,执行,部署>注释处理器> [检查]启用注释处理>应用

  • 1

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

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

    启用注释处理器:

    File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors
    File -> Other Settings -> Default Settings -> Compiler -> Annotation Processors
    
  • 0

    Faced similar problem. Below fixed worked for me.
    下载(从这里[https://projectlombok.org/download][1]]并在项目结构中添加jar .

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

相关问题