【问题标题】:Lombok annotations do not compile under Intellij idea [duplicate]Lombok 注释在 Intellij IDEA 下无法编译 [重复]
【发布时间】:2014-07-23 07:16:27
【问题描述】:
  1. 我已经安装了 intellij idea 的插件 (lombok-plugin-0.8.6-13)。
  2. 将 lombok.jar 添加到类路径中
  3. 我可以在结构窗口中找到getter 和setter。 Intellij 没有显示错误。
  4. 设置 - 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 路径列表。

标签: java intellij-idea lombok


【解决方案1】:

为了解决问题集:

  • 首选项(Ctrl + Alt + S
    • 构建、执行、部署
      • 编译器
        • 注释处理器
          • 启用注释处理

确保您已安装 IntelliJ 的 Lombok 插件!

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

【讨论】:

  • 当我使用 Eclipse 编译器编译 intellij 中的 java 源代码时单击 Build -> Rebuild project 时,Idea lombock 注释未得到处理,并且项目有许多编译时错误。切换回 Javac 编译器,一切正常。
  • 文件 -> 设置 -> 构建、执行、部署 -> ...如果您在 Windows 上
  • 我遇到了相反的问题,启用了注释处理,但还没有安装插件!
  • 也尝试更新插件。
  • 启用注释处理后,您可能需要清理并重建您的项目。
【解决方案2】:

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

  • 想法 14.1
  • Lo​​mbok 插件
  • ... / 编译器 / Java编译器 > 使用编译器:Eclipse
  • ... / 编译器 / 注释处理器 > 启用注释处理:选中(默认配置)
  • ... / Compiler > 其他构建过程 VM 选项:(共享构建过程 VM 选项)-javaagent:lombok.jar

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

IntelliJ 编辑器需要插件来识别 getter 和 setter,eclipse 编译器需要 javaagent 才能与 lombok 一起编译。

【讨论】:

  • 在我的 Intellij IDEA 2016.1 中,“附加构建过程 VM 选项”选项被命名为“共享构建过程 VM 选项”。
【解决方案3】:

如果你在 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. 文件 --> 项目结构 --> 项目设置 --> 模块 --> 依赖项 Tab = check lombok

  5. 重启 Intellij

【讨论】:

    【解决方案4】:

    我按照这个程序来解决类似/相同的错误。

    mvn 想法:干净

    mvn 想法:想法

    之后我可以从 IDE intellij 和命令行进行构建。

    【讨论】:

      【解决方案5】:

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

      • 想法 14.1.3,构建 141.1010
      • Lo​​mbok 插件[Preference->plugins->browse repositories->搜索'lombok'->安装并重启idea。
      • 首选项->搜索“注释”->进入注释处理器->启用注释处理。

      【讨论】:

      【解决方案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 的框


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

      • 无需注释处理!
      • 能够使用您选择的 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】:

        确保满足这两个要求:

        1. 启用注释处理,

          首选项 > 构建、执行、部署 > 编译器 > 注释处理器 > 启用注释处理

        2. 已为您的项目安装并启用了 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]
              }
          }
          

          所以,三个步骤

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-06-09
            • 2012-03-14
            • 1970-01-01
            • 1970-01-01
            • 2019-12-07
            相关资源
            最近更新 更多