我试图在我的项目中使用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。


当前回答

我遇到这种情况是因为运行构建过程的JDK版本太低了。Lombok是使用JDK 1.7或更高版本构建的。构建必须使用Java 1.7或更高版本运行。

其他回答

1、为IDEA安装lombok插件

Intellij Idea -> Preferences -> Plugins -> type in lombok -> Search in Repositories -> install -> restart Idea

2、配置lombok插件

启用注释处理将使其工作

但如果你使用的是Mac,请确保在以下两个地方启用了注释处理:

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

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

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

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

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

解决此问题的图片表示。

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

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