IntelliJ无法识别Lombok @Builder

时间:2019-05-15 14:33:47

标签: java intellij-idea lombok intellij-plugin

我已将 IntelliJ IDEA更新到版本2018.2.7 ,并且不再识别Lombok的@Builder批注。该项目已经具有Lombok批注,可与IntelliJ的早期版本(2017 ...)配合使用。 仅@Builder失败。 我正在使用 Lombok版本1.14.4 。 还有Java 11。

问题与此类似: Lombok not working with Intellij 但是那里提供的解决方案不适用于我的项目,因为我的项目没有子模块,唯一的pom.xml指向正确的项目。

该项目启用了Lombok插件并启用了注释处理。

Lombok plugin config Annotation processing config

配置版本的项目的POM:

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <lombok.version>1.14.4</lombok.version>
        <hibernate-jpa-2.1-api.version>1.0.0.Final</hibernate-jpa-2.1-api.version>
        <assertj-core.version>3.8.0</assertj-core.version>
</properties>

代码级别的错误消息是:Cannot resolve symbol @Builder。 如果可能的话,我想保留Lombok和IntelliJ的版本。

Error message

4 个答案:

答案 0 :(得分:3)

更新您的龙目岛版本。

因为 @Builder获得了@Singular支持,并且从lombok v1.16.0开始被提升为主要的lombok软件包。

Source

我有

function GetMyPendingItems() {
  $.ajax({
    type: "POST",
    url: "GlobalMethods.asmx/GetMyPendingItems",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(msg) {
      $("#RightMenu").html(msg.d);
    }
  });
}

没问题

答案 1 :(得分:1)

我没有在pom.xml中指定版本,默认情况下它是最新版本(1.18.8,我在“外部库”中看到了此版本)

<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <optional>true</optional>
</dependency>

Class.builder()对我不起作用,但是在安装了插件(https://github.com/mplushnikov/lombok-intellij-plugin)之后它起作用了。

不需要额外的配置。 :)

答案 2 :(得分:0)

这向我表明,您的Maven并未从中央存储库中提取依赖项。

以下是您可以尝试的操作列表:

  1. 验证所需的Lombok依赖性是否出现在中央存储库中。
  2. 验证所需的Lombok依赖项是否出现在本地.m2中。
  3. 重新索引您的Maven项目;确保启用了自动导入。
  4. 在左侧“项目”标签中检查“外部库”,以确保出现Lombok。
  5. 关闭项目并重新打开,如果右侧的Maven选项卡中有红色。

如果可用,IntelliJ将找到它。如果IntelliJ找不到它,则可能是不可用。

答案 3 :(得分:0)

就我而言,这是版本问题。诚实地。我降级到版本 1 并重新同步 Maven 存储库:

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.20</version>
        <scope>provided</scope>
    </dependency>