我已经安装了intellij idea的插件(lombok-plugin-0.8.6-13)。 将lombok.jar添加到类路径中 我可以在结构窗口中找到getter和setter。Intellij没有显示错误。 设置- Lombok插件-验证的Intellij配置为Lombok,它显示“配置Intellij似乎是ok”。

看起来一切都很好。但是当我编译一个测试时,错误来了:找不到方法getXXX和setXXX。

我用IntelliJ打开了.class文件,发现没有setXXX和getXXX方法。

有人能告诉我为什么吗?

插件:lombok-plugin-0.8.6-13 lombok.jar: 1.14.0 理念:Linux 13.0.2 jdk: 1.7.0_21


当前回答

在花了很长时间解决这个问题之后,我找到了一个简单的解决方法,可以确保IntelliJ在构建期间正确处理Lombok注释。

gradle-lombok插件不是这个解决方案所必需的。您的构建。Gradle只需要以下内容:

dependencies {
    compileOnly("org.projectlombok:lombok:1.16.18")
}

解决方法是打开以下IntelliJ设置:

打开IntelliJ首选项/设置。 导航到构建,执行,部署>构建工具> Gradle > Runner 选中“委托IDE构建/运行操作到gradle”复选框

与本页上的其他解决方案相比,此解决方案的优点:

不需要注释处理! 能够使用您选择的Java编译器(不需要Eclipse编译器) 没有使用有bug的gradle-lombok插件(虽然也许其他人可以解决这个问题) 不需要虚拟机选项 没有到龙目岛罐子的硬编码路径

一个缺点是IntelliJ将不再使用自己的测试运行程序。相反,测试总是通过Gradle运行。

其他回答

为了解决问题集:

参数设置(Ctrl + Alt + S) 构建、执行、部署 编译器 注解处理器 启用注释处理

确保安装了IntelliJ的Lombok插件!

首选项->插件 搜索“龙目岛插件” 点击浏览存储库… 选择Lombok插件 安装 重启IntelliJ

如果你正在使用Eclipse编译器和lombok,这个设置最终为我工作:

想法14.1 Lombok插件 ... / Compiler / Java Compiler >使用编译器:Eclipse ... >启用注释处理:勾选(默认配置) ... / Compiler >其他构建过程虚拟机选项:(共享构建过程虚拟机选项)-javaagent:lombok.jar

最重要的部分是最后一个,我的如下所示:

IntelliJ编辑器需要Plugin来识别getter和setter, eclipse编译器需要javaagent来编译lombok。

对我来说,lombok插件和注释处理都是必需的,没有其他。不需要使用Eclipse和额外的-javaagent:lombok.jar选项。

理念14.1.3,构建141.1010 Lombok插件[首选项->插件->浏览存储库->搜索' Lombok '->安装和重新启动想法。 首选项->搜索“注释”->进入注释处理器->启用注释处理。

我无法使用javac编译器进行此工作,并得到相同的错误。

错误:(9,14)java: package lombok不存在

我已经启用了注释处理器,也尝试了重新构建项目,使缓存无效/重新启动。没有帮助。

然而,我确实让它与eclipse编译器部分工作。我说部分是因为尽管构建成功通过,编辑器仍然抱怨“无法解析符号”。

Idea - 15.04社区版 龙目岛- 1.16.6 Lombok插件(https://github.com/mplushnikov/lombok-intellij-plugin) - 0.9.8 JDK - 1.8.0_51

更新: 好了,我终于把它修好了。我的是一个gradle项目,lombok被配置为自定义的“提供”配置。在build.gradle中添加后工作正常

idea {
 module {
     scopes.PROVIDED.plus += [configurations.provided]
    }
}

所以,有3个步骤

从File->Settings->Plugins安装Lombok插件 启用注释处理器(javac编译器也可以工作) 确保您有构建。如果您要将lombok添加为自定义配置,请更新Gradle或pom.xml。

确保满足以下两个要求:

启用注释处理, 首选项>构建、执行、部署> Compiler > Annotation Processors >开启Annotation处理 已为项目安装并启用Lombok插件。