我尝试在我的项目中使用lombok,我正在使用intellijidea11开发。
我已经为idea安装了第三方插件,它看起来运行良好,因为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
有什么解决办法吗?
更新2:也许这不是读者想听到的,但我最终还是转向了scala。
26条答案
按热度按时间u59ebvdq1#
如果您尝试了此处提供的所有解决方案,但仍然无法编译源代码,请参阅此处:生成器类的静态导入中断了maven中字节码的生成—如果它有此类静态导入,请查看源代码。这会影响maven插件,因此编译将在intellij idea之外的其他构建系统上失败。
k0pti3hp2#
上述解决方案对我都不起作用。我补充道
<scope>provided</scope>
找到pom.xml中的依赖项,它就成功了。ru9i0ody3#
正如这里所提到的:“您应该激活外部编译器选项并启用注解处理器,或者禁用外部编译器并禁用所有注解编译器以使用lombok”。这解决了我的问题。注意,我在收到这个错误之前添加了scala插件,所以我怀疑这个插件更改了上面的一些设置。
zynd9foi4#
1、 为idea安装lombok插件
intellij idea->首选项->插件->在lombok中键入->在存储库中搜索->安装->重新启动idea
2、 配置lombok插件
启用注解处理将使其工作
但是,如果您在mac上,请确保在以下两个位置启用注解处理:
intellij idea->preferences->build,execution,deployment->compiler->annotation processors,选中“enable annotation processing”复选框。文件->其他设置->默认设置->构建、执行、部署->编译器->注解处理器,选中“启用注解处理”复选框。
hiz5n14c5#
在尝试了这里的所有建议之后,我也找到了另一种解决方案。有时idea似乎无法从项目类路径获得处理器。
因此,在“注解处理器设置”选项卡上,必须手动指定处理器路径。
ktecyv1j6#
fwiw-在如上所述设置编译器注解时,请确保还检查了正在使用的任何概要文件,例如“maven default annotations processors”。
djp7away7#
可能发生的情况是,即使您正确地配置了它,并且它在库和gradle dependencies列表中可见,intellij在类路径中仍然没有它。或者它在那里,但配置了不同的作用域(例如:test而不是compile)
首先,确保您已经安装了插件并启用了注解处理,如其他答案中所述。
如果仍无法识别注解,请将光标放在注解上,按alt+enter(或option+enter)并查看是否有菜单选项
Add library: Gragle: org.projectlombok:lombok:VERSION to class path
. 如果你能看到它,选择这个,它可能会解决你的问题。您可以在“项目设置/模块/依赖项”选项卡中检查库及其范围(在其中搜索lombok)
ktecyv1j8#
在将想法更新到2018.3之后,我遇到了这个问题。我必须更新所有现有的插件
llmtgqce9#
我正在使用intellij idea 2020.3(社区版)
在这里,除了安装lombok插件和启用注解(由其他答案解释)。我还需要设置国旗
-Djps.track.ap.dependencies=false
到生成过程选项¹.我不需要使用-javaagent方法,也不需要设置类路径。
¹. 转到:file | settings | build,execution,deployment | compiler |“shared build process vm options”字段
参考文献:
https://github.com/rzwitserloot/lombok/issues/2592#issuecomment-705449860
https://youtrack.jetbrains.com/issue/idea-250718#focus=评论-27-4418347.0-0
hwazgwia10#
我在idea 12中通过设置复选框解决了这个问题
Enable annotation processing
在:设置->编译器->注解处理器
对于idea 2016.2:
首选项…>构建、执行、部署>编译器>注解处理器
启用后,运行build->rebuild project以识别注解并消除错误。
对于idea 2019.2.1,根据项目的配置,安装project lombok插件可能不够。下面是另一种将lombok项目与intellij idea结合使用的方法:
访问https://projectlombok.org/download
将jar文件下载到project lib目录中(例如。,
$HOME/dev/java/project/libs
).启动ide。
单击“文件”?设置。
扩展构建、执行、部署?编译器?注解处理器。
确保选中“启用注解处理”。
确保根据项目的模块设置选择了存储生成相对于的源(如果模块输出目录不起作用,请返回并尝试其他设置)。
单击应用。
单击插件。
单击市场。
将搜索字段设置为:
lombok
安装lombok。单击“确定”。
如果出现提示,请重新启动ide。
单击“文件”?项目设置。
选择库。
单击+符号添加新的项目库(或按alt+insert)。
选择java。
将路径设置为:
$HOME/dev/java/project/libs/lombok.jar
单击“确定”。选择要应用的模块。
单击“确定”。
(可选)重命名
lombok
至Project Lombok 1.18.8
.单击“确定”。
项目现在可以从
lombok
打包并使用lombok项目注解(例如。,lombok.Setter
以及lombok.Getter
).cbeh67ev11#
在我的情况下,我已经把下面提到的所有东西都准备好了,但仍然不起作用。
我已经正确安装了lombok插件
注解处理器,也已选中。
我的java编译器被设置为javac
为了解决我的问题我不得不
于2017年10月7日将lombok更新至最新版本(v0.15)。
重新启动intellij。
重建项目。
请参阅下面有关如何更新和重建项目的屏幕截图。
如何更新lombok
如何重建项目
wi3ka0sx12#
在最新的gradle版本中,您应该使用annotationprocessor:
h6my8fg213#
在pom.xml中包含以下内容对我很有用:
watbbzwu14#
你可以修理
cannot find symbol variable log
在intellij idea 2017.1.3中使用lombok时:intellij首选项
dsf9zpds15#
intellij有一个插件。请看这里:https://projectlombok.org/download.html