我有一个使用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
我在这里错过了什么?
Update 看不出我不是说身体上看不见 . 我是说这个:
/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测试时,我遇到了这些错误 .
8 回答
您需要启用注释预处理器 . See documentation here .
另外,如果没有安装lombok插件,你应该安装它
我设法通过执行以下操作来解决此问题:
安装IDEA Lombok插件
启用注释处理see documentation
在您的系统上安装最新的Maven并配置IntelliJ以使用它(而不是捆绑的)see documentation
在我的情况下,通过工具箱更新IntelliJ后出现问题 .
“启用注释处理”标志已关闭(尽管从以前的IntelliJ版本导入设置),因此我将其打开 . 重启,清理,构建后,这并没有解决问题 .
但是,重新安装lombok插件有帮助!
编辑:似乎是lombok插件与IntelliJ 2018.1兼容的问题,IntelliJ用户需要将插件升级到0.17 .
Lombok插件更新日志摘录:
它可以在build文件夹中看到 .
对于Lombok,IntelliJ允许您搜索变量的用法,其中还包括getter和setter . 只需单击变量名称和
option/alt + f7
.这适用于Intellij 2016和Lombok插件0.13.16 . 我不确定旧版本 .
启用注释处理器并安装lombok插件后,如果仍然在lombok生成的方法上找到“找不到符号错误”,请尝试检查gradle配置,这是在
偏好 - >构建,执行,部署 - > Gradle,
如果您使用的是本地gradle分布,请更改为 use default gradle wrapper .
当我的项目的gradle包装器是4.10.2但我的本地gradle版本是5.1.1时,我得到了这个错误,我在将其更改为使用默认gradle包装器后解决了它 .
如其他答案中所述,请安装
Lombok
插件并启用注释处理器 . 在IntelliJ中按双SHIFT
,然后在搜索框中键入Enable annotation processing
. 然后,勾选该框并重新启动IDE .在pom.xml中添加以下依赖项以及其他答案中提到的其他解决方案 .