我有一个使用lombok的基于Gradle的项目。我已将此项目导入IntelliJ IDEA 14.1(使用导入外部模型导入方法)。我可以在Gradle中没有问题地运行JUnit4单元测试,但IntelliJ似乎在看到Lombok生成的Getters时遇到了问题。这使我无法在IDEA中运行测试。
为了确保它不是设置问题,我创建了Very simple project并确认在简单测试项目中出现了同样的问题。
我的版本:
Gradle:gradle-2.3-all通过Gradle包装纸
Intellij IDEA:IU-141.713
Lombok插件:0.9.2
我在这里缺少什么?
更新由看不到我的意思并不是物理上不可见。我的意思是:
/home/meeee/workspace/junit-lombok-idea/lib/src/main/java/com/example/jumbokea/Main.java
Error:(10, 11) java: cannot find symbol
symbol: method setIntField(int)
location: variable sc of type com.example.jumbokea.SomeClass
Error:(12, 41) java: cannot find symbol
symbol: method getIntField()
location: variable sc of type com.example.jumbokea.SomeClass
Error:(14, 33) java: constructor AnotherClass in class com.example.jumbokea.AnotherClass cannot be applied to given types;
required: no arguments
found: float,com.example.jumbokea.SomeClass
reason: actual and formal argument lists differ in length
Error:(16, 46) java: cannot find symbol
symbol: method getSomeFloat()
location: variable ac of type com.example.jumbokea.AnotherClass
Error:(17, 43) java: cannot find symbol
symbol: method getSomeClass()
location: variable ac of type com.example.jumbokea.AnotherClass
反编译的类显示了getter和setter,但是当我让IntelliJ运行'app'或Unit测试时,我遇到了这些错误。
答案 0 :(得分:68)
您需要启用注释预处理器。 See documentation here
此外,如果尚未安装lombok插件,则应安装
答案 1 :(得分:8)
我设法通过以下方式解决了这个问题:
答案 2 :(得分:4)
在我的情况下,在通过工具箱更新IntelliJ后发生了问题。
“启用注释处理”标志已关闭(尽管从以前的IntelliJ版本导入设置),因此我将其打开。 重启,清理,构建后,这并没有解决问题。
然而,重新安装lombok插件有帮助!
编辑:似乎是lombok插件与IntelliJ 2018.1的兼容性问题,IntelliJ用户需要将插件升级到0.17。
Lombok插件更新日志摘录:
Lombok支持插件已更新至v0.17: - 修正(#465):修复插件与IntelliJ 2018.1的兼容性
答案 3 :(得分:3)
可以在build文件夹中看到。
答案 4 :(得分:1)
启用注释处理器并安装lombok插件后,如果在lombok生成的方法上仍然出现“找不到符号错误”,请尝试检查gradle配置(位于
中)首选项->构建,执行,部署-> Gradle,
如果您使用的是本地gradle分发,请更改为使用默认的gradle包装器。
当我的项目的gradle包装器为4.10.2但我的本地gradle版本为5.1.1时,出现此错误,并且在将其更改为使用默认的gradle包装器后解决了该问题。
答案 5 :(得分:0)
对于Lombok,IntelliJ允许您搜索变量的用法,其中还包括getter和setter。只需点击变量名称和option/alt + f7
。
这适用于Intellij 2016和Lombok插件0.13.16。我不确定旧版本。
答案 6 :(得分:0)
如另一个答案中所述,请安装Lombok
插件并启用注释处理器。在IntelliJ中按两次SHIFT
,然后在搜索框中键入Enable annotation processing
。之后,在框上打勾并重新启动IDE。
答案 7 :(得分:0)
在pom.xml中添加以下依赖项以及其他答案中提到的其他解决方案。
ionic cordova build ios --prod
答案 8 :(得分:0)
尝试单击lombok导入,然后输入alt + enter,然后会出现简短列表,选择添加maven依赖项,然后在屏幕的右下角将显示应启用maven的图标,然后单击自动启用。对我来说,它奏效了。
答案 9 :(得分:0)
即使添加了注释处理器并添加了lombok依赖关系,也可能无法解决问题。这是因为与模型相关的类文件必须位于目标文件夹
中运行全新安装,以生成带有lombok代码生成的更改的模型的类文件。