Lombok注释不能在Intellij想法下编译

时间:2014-06-03 04:05:04

标签: java intellij-idea lombok

  1. 我已经为intellij idea安装了插件(lombok-plugin-0.8.6-13)。
  2. 将lombok.jar添加到classpath
  3. 我可以在结构窗口找到getter和setter。并且Intellij没有显示任何错误。
  4. 设置 - Lombok插件 - 验证了lombok的Intellij配置,它显示“IntelliJ的配置似乎没问题”。
  5. 似乎一切都好。但是当我编译测试时,出现了错误:找不到方法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

11 个答案:

答案 0 :(得分:285)

为了解决问题集:

  • 偏好设置( Ctrl + Alt + S
    • 构建,执行,部署
      • 编译器
        • 注释处理器
          • 启用注释处理

确保安装了IntelliJ的Lombok插件!

  • 偏好设置->插件
  • 搜索“Lombok Plugin”
  • 单击“浏览存储库...”
  • 选择Lombok插件
  • 安装
  • 重启IntelliJ

答案 1 :(得分:39)

如果您正在使用带有lombok的Eclipse编译器,这个设置最终对我有用:

  • IDEA 14.1
  • Lombok插件
  • ... / 编译器 / Java编译器>使用编译器: Eclipse
  • ... / 编译器 / 注释处理器>启用注释处理:已选中(默认配置)
  • ... / 编译器>其他构建过程VM选项: -javaagent:lombok.jar

最重要的部分是最后一部分,我看起来如下: enter image description here

IntelliJ编辑器需要插件来识别getter和setter,eclipse编译器需要使用javaagent来编译lombok。

答案 2 :(得分:10)

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

  • Idea 14.1.3,build 141.1010
  • Lombok插件[首选项 - >插件 - >浏览存储库 - >搜索' lombok' - >安装并重启想法。
  • 首选项 - >搜索注释' - >输入注释处理器 - >启用注释处理。

答案 3 :(得分:9)

如果您在Mac上使用Intellij,则此设置最终对我有用。

安装:Intellij

  1. 转到“首选项”,搜索插件。
  2. 在插件搜索框中输入“ Lombok”。 Lombok是一个非捆绑式插件,因此一开始不会显示。
  3. 点击“浏览”以搜索非捆绑式插件
  4. 应该会显示“ Lombok插件”。选择它。
  5. 点击绿色的“安装”按钮。
  6. 单击“重新启动Intellij IDEA”按钮。

设置:

  1. 启用注释处理器

    • 转到首选项->构建,执行,部署->首选项->编译器->注释处理器
    • 文件->其他设置->默认设置->编译器->注释处理器
  2. 检查是否启用了Lombok插件

    • IntelliJ IDEA->首选项->其他设置-> Lombok插件->启用Lombok
  3. 在全局库和项目依赖项中添加Lombok jar。

    • 文件->项目结构->全局库(添加lombok.jar)
  4. 文件->项目结构->项目设置->模块->依赖关系选项卡=检查lombok

  5. 重新启动Intellij

答案 4 :(得分:8)

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>
    

答案 5 :(得分:7)

确保满足这两个要求:

  1. 启用注释处理

    偏好设置&gt;构建,执行,部署&gt;编译器&gt;注释处理器&gt;启用注释处理

  2. 为您的项目安装并启用了Lombok插件。

答案 6 :(得分:6)

这个问题的高级答案都没有为我解决问题。

我设法通过在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

希望我的回答对您有所帮助

答案 7 :(得分:6)

在花了太长时间对此进行故障排除后,我发现了一个简单的解决方法,可确保IntelliJ在构建过程中正确处理Lombok注释。

此解决方法不需要gradle-lombok插件。您的build.gradle只需要以下内容:

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

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

  1. 打开IntelliJ首选项/设置。
  2. 导航至Build, Execute, Deployment > Build Tools > Gradle > Runner
  3. 选中标有Delegate IDE build/run actions to gradle
  4. 的复选框


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

    • 无需注释处理!
    • 能够使用您选择的Java编译器(无需Eclipse编译器)
    • 没有使用buggy gradle-lombok插件(虽然也许其他人可以解决这个问题)
    • 无需VM选项
    • 没有硬编码路径到lombok jar

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

答案 8 :(得分:3)

On Itellij 15 CE, it's enough to just install Lombok Plugin (no additional configuration required).

答案 9 :(得分:2)

我按照此过程进行了类似/相同的错误

MVN idea:clean

MVN idea:idea

之后,我可以通过IDE intellij和命令行来构建。

答案 10 :(得分:0)

我无法使用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]
    }
}

所以,3个步骤

  1. 从File-&gt; Settings-&gt; Plugins
  2. 安装Lombok插件
  3. 启用注释处理器(javac编译器也可以)
  4. 如果要将lombok添加为自定义配置,请确保已更新build.gradle或pom.xml。