我正在尝试在使用 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 。
原文由 expert 发布,翻译遵循 CC BY-SA 4.0 许可协议
我通过在 IDEA 12 中设置复选框
Enable annotation processing
来修复它:对于 IDEA 2016.2:
启用后,运行 Build -> Rebuild Project 以识别注释并消除错误。
对于 IDEA 2019.2.1,根据项目的配置方式,安装 Project Lombok 插件可能还不够。这是将 Project Lombok 与 IntelliJ IDEA 结合使用的另一种方法:
$HOME/dev/java/project/libs
)。lombok
Alt
+Insert
)。$HOME/dev/java/project/libs/lombok.jar
lombok
重命名为Project Lombok 1.18.8
。该项目现在可以从
lombok
包导入并使用 Project Lombok 注释(例如,lombok.Setter
和lombok.Getter
)。