首页 文章

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

提问于
浏览
135
  • 我已经为intellij idea安装了插件(lombok-plugin-0.8.6-13) .

  • 将lombok.jar添加到classpath中

  • 我可以在结构窗口找到getter和setter . 并且Intellij没有显示任何错误 .

  • 设置 - Lombok插件 - 验证了lombok的Intellij配置,它显示了"configuration of IntelliJ seems to be ok" .

似乎一切都好 . 但是当我编译测试时,错误来了:找不到方法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 回答

  • 8

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

    • Idea 14.1.3,build 141.1010

    • Lombok插件[Preference-> plugins-> browse repositories-> search 'lombok' - > install and restart idea .

    • 首选项 - >搜索'annotation' - >输入注释处理器 - >启用注释处理 .

  • 10

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

    • IDEA 14.1

    • Lombok插件

    • ... /编译器/ Java编译器>使用编译器: Eclipse

    • ... /编译器/注释处理器>启用注释处理: checked (默认配置)

    • ... /编译器>其他构建过程VM选项: -javaagent:lombok.jar

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

    IntelliJ编辑器需要插件才能识别getter和setter,eclipse编译器需要javaagent才能使用lombok进行编译 .

  • 275

    为了解决问题集:

    • 首选项(Ctrl Alt S)

    • 构建,执行,部署

    • 编译器

    • 注释处理器

    • 启用注释处理

    确保安装了IntelliJ的Lombok插件!

    • 首选项 -> 插件

    • 搜索"Lombok Plugin"

    • 单击“浏览存储库”...

    • 选择Lombok插件

    • 安装

    • 重启IntelliJ

  • 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>
    
  • 3

    确保满足这两个要求:

    • 启用注释处理,

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

    为您的项目安装并启用了

    • Lombok插件 .
  • 2

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

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

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

  • 37

    在花了太长时间对此进行故障排除后,我发现了一个简单的解决方法,可确保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编译器)

    • 没有使用buggy gradle-lombok插件(虽然也许其他人可以解决这个问题)

    • 无需VM选项

    • 没有到lombok jar的硬编码路径

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

  • 0

    如果你在Mac上使用Intellij,这个设置最终对我有用 .

    Installations: Intellij

    • 转到“首选项”,搜索“插件” .

    • 在插件搜索框中输入"Lombok" . Lombok是一个非捆绑的插件,因此它最初不会显示 .

    • 单击"Browse"以搜索非捆绑插件

    • "Lombok Plugin"应该出现 . 选择它 .

    • 单击绿色"Install"按钮 .

    • 单击"Restart Intellij IDEA"按钮 .

    Settings:

    • 启用注释处理器

    • 转到首选项 - >构建,执行,部署 - >首选项 - >编译器 - >注释处理器

    • 文件 - >其他设置 - >默认设置 - >编译器 - >注释处理器

    • 检查是否启用了Lombok插件

    • IntelliJ IDEA->首选项 - >其他设置 - > Lombok插件 - >启用Lombok

    • 在全局库和项目依赖项中添加Lombok jar .

    • 文件 - >项目结构 - >全局库(添加lombok.jar)

    • 文件 - >项目结构 - >项目设置 - >模块 - >依赖项选项卡=检查lombok

    • 重启Intellij

  • 6

    在Itellij 15 CE上,只需安装Lombok插件即可(无需额外配置) .

  • 4

    我按照这个程序来获得类似/相同的错误 .

    mvn idea:干净

    mvn idea:idea

    之后,我可以从IDE intellij和命令行构建 .

  • 6

    我无法使用javac编译器,我得到了同样的错误 .

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

    我已经启用了注释处理器,并且还尝试重建项目,使缓存/重启无效 . 没有帮助 .

    然而,我确实使用eclipse编译器部分工作 . 我说部分是因为虽然构建成功通过,但编辑仍抱怨“无法解析符号” .

    Idea - 15.04社区版Lombok - 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个步骤

    • 从文件 - >设置 - >插件安装Lombok插件

    • 启用注释处理器(javac编译器也可以)

    • 如果要将lombok添加为自定义配置,请确保已更新build.gradle或pom.xml .

相关问题