首页 文章

IntelliJ IDEA无法看到Lombok生成的代码

提问于
浏览
37

我有一个使用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测试时,我遇到了这些错误 .

Getters and setters are there, but not there???

8 回答

  • 67

    您需要启用注释预处理器 . See documentation here .

    另外,如果没有安装lombok插件,你应该安装它

  • 7

    我设法通过执行以下操作来解决此问题:

    • 安装IDEA Lombok插件

    • 启用注释处理see documentation

    • 在您的系统上安装最新的Maven并配置IntelliJ以使用它(而不是捆绑的)see documentation

  • 0

    在我的情况下,通过工具箱更新IntelliJ后出现问题 .

    “启用注释处理”标志已关闭(尽管从以前的IntelliJ版本导入设置),因此我将其打开 . 重启,清理,构建后,这并没有解决问题 .

    但是,重新安装lombok插件有帮助!

    编辑:似乎是lombok插件与IntelliJ 2018.1兼容的问题,IntelliJ用户需要将插件升级到0.17 .

    Lombok插件更新日志摘录:

    Lombok支持插件更新到v0.17: - 修正(#465):修复插件与IntelliJ 2018.1的兼容性

  • 3

    它可以在build文件夹中看到 .

    enter image description here

  • 0

    对于Lombok,IntelliJ允许您搜索变量的用法,其中还包括getter和setter . 只需单击变量名称和 option/alt + f7 .

    这适用于Intellij 2016和Lombok插件0.13.16 . 我不确定旧版本 .

  • 0

    启用注释处理器并安装lombok插件后,如果仍然在lombok生成的方法上找到“找不到符号错误”,请尝试检查gradle配置,这是在

    偏好 - >构建,执行,部署 - > Gradle,

    如果您使用的是本地gradle分布,请更改为 use default gradle wrapper .

    当我的项目的gradle包装器是4.10.2但我的本地gradle版本是5.1.1时,我得到了这个错误,我在将其更改为使用默认gradle包装器后解决了它 .

  • 0

    如其他答案中所述,请安装 Lombok 插件并启用注释处理器 . 在IntelliJ中按双 SHIFT ,然后在搜索框中键入 Enable annotation processing . 然后,勾选该框并重新启动IDE .

    enter image description here

    enter image description here

  • 4

    在pom.xml中添加以下依赖项以及其他答案中提到的其他解决方案 .

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.2</version>
        <scope>provided</scope>
    </dependency>
    

相关问题