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

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

我有一个使用Slf4j的类。我这样做了注解

import lombok.extern.slf4j.Slf4j;

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

但当我建立我的项目编译器吐槽:无法找到符号变量日志。

你能告诉我我错过了什么吗?

更新:原来是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

有什么解决办法吗?

更新2:也许这不是读者想听到的,但我最终转向了Scala。


当前回答

如果以上都没有工作,然后尝试更改文件->项目结构->项目->项目语言级别> 8 Lambda,类型注释(非SDK默认8)

这对我很管用。

其他回答

我在使用JDK8构建时遇到了类似的问题,将项目设置回JDK7,它工作得很好。可能是不能在JDK8下编译的旧版本的Lombok。

我使用的是IntelliJ IDEA 2020.3(社区版)

在这里,除了安装Lombok插件和启用注释之外(其他答案解释)。我还需要将标记- djpps .track.ap.dependencies=false设置为Build Process选项¹。

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

¹。进入:文件|设置|构建,执行,部署|编译|“共享构建过程虚拟机选项”字段

引用:

https://github.com/rzwitserloot/lombok/issues/2592#issuecomment-705449860 https://youtrack.jetbrains.com/issue/IDEA-250718#focus=Comments-27-4418347.0-0

启用注释处理将使其工作

但如果你使用的是Mac,请确保在两个可用位置都启用了注释处理(勾选复选框)。

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

2)。File ->其他设置->默认设置-> Compiler -> Annotation Processors

解决此问题的图片表示。

首先启用注释处理器并尝试。这可能有用,也可能没用。

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

以我为例,我把下面提到的所有东西都准备好了,但它仍然不能工作。

我已经正确安装了lombok插件 注释处理器,也勾选。 我的Java编译器设置为JAVAC

为了解决我的问题,我不得不这么做

在2017年10月7日将lombok更新到最新版本(v0.15)。 IntelliJ重启。 重建项目。

关于如何更新和重建项目,请参见下面的截图。

如何更新龙目岛

如何重建项目