Lombok 注释在 Intellij IDEA 下无法编译 [重复]
Posted
技术标签:
【中文标题】Lombok 注释在 Intellij IDEA 下无法编译 [重复]【英文标题】:Lombok annotations do not compile under Intellij idea [duplicate] 【发布时间】:2014-07-23 07:16:27 【问题描述】:-
我已经安装了 intellij idea 的插件 (lombok-plugin-0.8.6-13)。
将 lombok.jar 添加到类路径中
我可以在结构窗口中找到getter 和setter。 Intellij 没有显示错误。
设置 - Lombok 插件 - 已验证 lombok 的 Intellij 配置,它显示“IntelliJ 的配置似乎没问题”。
似乎一切正常。但是当我编译一个测试时,错误来了:找不到方法getXXX和setXXX。
我用IntelliJ打开了.class文件,发现里面没有setXXX和getXXX方法。
谁能告诉我为什么?
插件:lombok-plugin-0.8.6-13 lombok.jar:1.14.0 idea:13.0.2 for linux jdk:1.7.0_21【问题讨论】:
最后,我解决了问题。设置 - 编译器 - 注释处理器 - 启用注释处理。确保已检查! 头撞墙很长一段时间后,我意识到这是因为我的项目SDK被错误地设置为Java 11,这似乎不适用于Lombok。将它设置回 Java 8 对我来说是诀窍。 除了启用注释处理之外,对我来说,我必须选中“从项目类路径获取处理器”选项而不是 Processsor 路径列表。 【参考方案1】:为了解决问题集:
首选项(Ctrl + Alt + S) 构建、执行、部署 编译器 注释处理器 启用注释处理确保您已安装 IntelliJ 的 Lombok 插件!
偏好->
插件
搜索“Lombok 插件”
单击浏览存储库...
选择 Lombok 插件
安装
重启 IntelliJ
【讨论】:
当我使用 Eclipse 编译器编译 intellij 中的 java 源代码时单击 Build -> Rebuild project 时,Idea lombock 注释未得到处理,并且项目有许多编译时错误。切换回 Javac 编译器,一切正常。 文件 -> 设置 -> 构建、执行、部署 -> ...如果您在 Windows 上 我遇到了相反的问题,启用了注释处理,但还没有安装插件! 也尝试更新插件。 启用注释处理后,您可能需要清理并重建您的项目。【参考方案2】:如果您使用带有 lombok 的 Eclipse 编译器,这个设置终于对我有用了:
想法 14.1 Lombok 插件 ... / 编译器 / Java编译器 > 使用编译器:Eclipse ... / 编译器 / 注释处理器 > 启用注释处理:选中(默认配置) ... / Compiler > 其他构建过程 VM 选项:(共享构建过程 VM 选项)-javaagent:lombok.jar最重要的部分是最后一个,我的如下所示:
IntelliJ 编辑器需要插件来识别 getter 和 setter,eclipse 编译器需要 javaagent 才能与 lombok 一起编译。
【讨论】:
在我的 Intellij IDEA 2016.1 中,“附加构建过程 VM 选项”选项被命名为“共享构建过程 VM 选项”。【参考方案3】:如果你在 Mac 上使用 Intellij,这个设置终于对我有用。
安装:Intellij
-
转到首选项,搜索插件。
在插件搜索框中输入“Lombok”。 Lombok 是一个非捆绑插件,所以一开始不会显示。
点击“浏览”搜索非捆绑插件
应该会显示“Lombok 插件”。选择它。
点击绿色的“安装”按钮。
点击“重启 Intellij IDEA”按钮。
设置:
启用注释处理器
转到首选项 -> 构建、执行、部署 -> 首选项 -> 编译器 -> 注释处理器 文件 -> 其他设置 -> 默认设置 -> 编译器 -> 注释处理器检查 Lombok 插件是否启用
IntelliJ IDEA->首选项->其他设置->Lombok插件->启用Lombok在全局库和项目依赖项中添加 Lombok jar。
文件 --> 项目结构 --> 全局库(添加 lombok.jar)文件 --> 项目结构 --> 项目设置 --> 模块 --> 依赖项 Tab = check lombok
重启 Intellij
【讨论】:
【参考方案4】:我按照这个程序来解决类似/相同的错误。
mvn 想法:干净
mvn 想法:想法
之后我可以从 IDE intellij 和命令行进行构建。
【讨论】:
【参考方案5】:对我来说,lombok 插件和注释处理都需要启用,没有别的。无需使用 Eclipse 和其他 -javaagent:lombok.jar 选项。
想法 14.1.3,构建 141.1010 Lombok 插件[Preference->plugins->browse repositories->搜索'lombok'->安装并重启idea。 首选项->搜索“注释”->进入注释处理器->启用注释处理。【讨论】:
没有必要使用 Eclipse 编译器,但您可能需要考虑一些令人信服的理由。更多信息在这里:blog.dripstat.com/why-you-should-use-the-eclipse-compiler-in【参考方案6】:在解决这个问题的时间太长之后,我找到了一个简单的解决方法,可以确保 IntelliJ 在构建期间正确处理 Lombok 注释。
此解决方法不需要 gradle-lombok 插件。您的build.gradle
只需要以下内容:
dependencies
compileOnly("org.projectlombok:lombok:1.16.18")
解决方法是打开以下 IntelliJ 设置:
-
打开 IntelliJ 首选项/设置。
导航到
Build, Execute, Deployment > Build Tools > Gradle > Runner
选中标记为Delegate IDE build/run actions to gradle
的框
与此页面上的其他解决方案相比,此解决方法的优势:
无需注释处理! 能够使用您选择的 Java 编译器(无需 Eclipse 编译器) 不使用有问题的 gradle-lombok 插件(尽管也许其他人可以解决这个问题) 无需虚拟机选项 没有到 lombok jar 的硬编码路径一个缺点是 IntelliJ 将不再使用自己的测试运行器。相反,测试总是通过 Gradle 运行。
【讨论】:
【参考方案7】:IDEA 2016.1:
安装lombok plugin 设置 -> 编译器 -> 注释处理器 -> 启用注释处理:选中(默认配置) 设置 -> 编译器 -> 注释处理器 -> 注释处理器添加“lombok.launch.AnnotationProcessorHider$AnnotationProcessor”如果你使用 maven 添加到 maven-compiler-plugin 配置 -> annotationProcessors -> annotationProcessor: lombok.launch.AnnotationProcessorHider$AnnotationProcessor
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>$maven.plugin.compiler.version</version>
<configuration>
<compilerVersion>$java.version</compilerVersion>
<source>$java.version</source>
<target>$java.version</target>
<annotationProcessors>
<annotationProcessor>lombok.launch.AnnotationProcessorHider$AnnotationProcessor</annotationProcessor>
</annotationProcessors>
</configuration>
</plugin>
【讨论】:
我做了你写的同样的事情,除了 maven 的事情(我现在不使用构建工具),但它仍然不起作用。 Intellij 说它找不到lombok.launch.AnnotationProcessorHider$AnnotationProcessor
处理器。
按照这些步骤,去掉Lombok注解,再放一遍。【参考方案8】:
确保满足这两个要求:
启用注释处理,
首选项 > 构建、执行、部署 > 编译器 > 注释处理器 > 启用注释处理
已为您的项目安装并启用了 Lombok 插件。
【讨论】:
如何确保它已启用?我可以安装或卸载它。我将如何启用它?【参考方案9】:这个问题的高级答案都没有为我解决问题。
我设法通过在 pom.xml 文件中添加对 lombok 的依赖来解决问题,即:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.12</version>
</dependency>
我正在使用 IntelliJ 2016.3.14 和 maven-3.3.9
希望我的回答对你有帮助
【讨论】:
【参考方案10】:在 Itellij 15 CE 上,只需安装 Lombok 插件就足够了(无需额外配置)。
【讨论】:
相同的解决方案适用于 2016.1【参考方案11】:我无法使用 javac 编译器进行此操作,并且出现同样的错误。
错误:(9, 14) java: 包 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]
所以,三个步骤
-
从文件->设置->插件安装Lombok插件
启用注释处理器(javac 编译器也可以)
如果要将 lombok 添加为自定义配置,请确保已更新 build.gradle 或 pom.xml。
【讨论】:
以上是关于Lombok 注释在 Intellij IDEA 下无法编译 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
在 IntelliJ IDEA 下使用 Lombok 时无法编译项目