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


当前回答

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

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

其他回答

我用的是Mac

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

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

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

.

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

我不得不安装Lombok插件也使其工作。

3)。Intellij IDEA ->首选项->插件->浏览存储库->搜索“Lombok”->安装插件->应用并重新启动IDEA

您的项目有lombok依赖项吗?在编译使用任何lombok-annotation的项目期间,Lombok.jar必须位于类路径上。

在最新的Gradle版本中,你应该使用注解处理器:

compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok:1.18.8'

我尝试启用lambok,重新启动intellij等,但下面对我有用。

Intellij Preferences ->Compiler -> Shared Build process VM Options,设置为

  -Djps.track.ap.dependencies=false

比跑

mvn clean install

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