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

yur*_*nom 179 java intellij-idea lombok

  1. 我已经为intellij idea安装了插件(lombok-plugin-0.8.6-13).
  2. 将lombok.jar添加到classpath中
  3. 我可以在结构窗口找到吸气剂和固定剂.并且Intellij没有显示任何错误.
  4. 设置 - Lombok插件 - 验证了lombok的Intellij配置,它显示"IntelliJ的配置似乎没问题".

似乎一切都好.但是当我编译测试时,错误来了:找不到方法getXXX和setXXX.

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

有人可以告诉我为什么吗?

  • 插件:龙目岛 - 插件-0.8.6-13
  • lombok.jar:1.14.0
  • 想法:13.0.2 for linux
  • JDK:1.7.0_21

mik*_*ike 344

为了解决问题集:

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

确保安装了IntelliJ的Lombok插件!

  • 首选项->插件
  • 搜索"Lombok插件"
  • 单击"浏览存储库"...
  • 选择Lombok插件
  • 安装
  • 重启IntelliJ

  • 每当我使用Eclipse编译器编译intellij中的java源时,我点击Build - > Rebuild项目时,不会处理lombock注释并且项目有很多编译时错误.回到Javac编译器,一切正常. (7认同)
  • 我有相反的问题,启用了注释处理,但还没有安装插件! (6认同)
  • 文件 - >设置 - >构建,执行,部署 - > ...如果您使用的是Windows (4认同)

Jur*_*sur 46

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

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

最重要的部分是最后一部分,我看起来如下: 在此输入图像描述

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

  • 在我的Intellij IDEA 2016.1中,"附加构建过程VM选项"选项被命名为"共享构建过程VM选项". (12认同)

小智 14

如果您在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


小智 14

我按照此程序解决了类似/相同的错误。

mvn 想法:干净

mvn 想法:想法

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


wei*_*eng 11

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

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


Jan*_*ovy 7

IDEA 2016.1:

  • 安装lombok插件
  • 设置 - >编译器 - >注释处理器 - >启用注释处理:选中(默认配置)
  • 设置 - >编译器 - >注释处理器 - >注释处理器添加"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>
    
    Run Code Online (Sandbox Code Playgroud)


Nik*_*tre 7

确保满足这两个要求:

  1. 启用注释处理,

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

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


Son*_*leJ 7

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

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

dependencies {
    compileOnly("org.projectlombok:lombok:1.16.18")
}
Run Code Online (Sandbox Code Playgroud)

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

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


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

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

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


小智 6

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

我设法通过在pom.xml文件中向lombok添加依赖项来解决问题,即:

<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
   <version>1.16.12</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我正在使用IntelliJ 2016.3.14和maven-3.3.9

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