Lombok已添加,但Intellij IDEA未识别getter和setter

195

我在 Ubuntu 上使用 IntelliJ IDEA。我向项目中添加了 lombok.jar,并安装了 IntelliJ IDEA 的 Lombok 插件。我可以访问注释,但是 getterssetters 并没有生成。我得到的错误与尝试访问不存在的 getter 或 setter 方法时相同。我可能漏掉了什么?


我的答案在这里:https://dev59.com/EWox5IYBdhLWcg3wHAwA#42809311 - CodeShadow
在每次尝试完技巧后,为寻找答案的人添加一条注释,无效化您的库缓存->删除.m2文件夹并重新构建项目。 - Rishal
22个回答

331

你需要为IDEA安装Lombok插件。打开设置面板(Ctrl + Alt + S)。搜索“插件”,然后在插件中搜索“Lombok”。找到该插件并安装。最后,重新启动IDEA。这样一切就没问题了!


5
这个问题解决后,在Android Studio中需要安装这个插件。 - Jemshit Iskenderov
2
哇哦!在安装新的IntelliJ版本后,我不得不这样做。没有意识到lombok是一个插件。 - TheFreddyKilo
1
在更新IntellijJ之后也是一样的:不得不更新Lombok。 - ihebiheb
这对我有用! - undefined

187

我通过在设置->编译器->注解处理器中勾选“启用注解处理”复选框来修复了它。

除此之外,你可能还需要安装 lombok 插件,正如@X.Chen的回答中提到的那样,适用于新版本的IntelliJ Idea。


9
我试过这个,但实际上并没有解决我的问题,还有其他选项我应该考虑吗? - shafeen
1
在Intellij 2017版本的“设置”页面中,“编译器”选项出现在“构建、执行、部署”选项下。 - learner
2
在Lombok插件的组合中。 - bl4ckr0se
除此之外,我的问题是在完成这两个步骤后需要执行 mvn clean install 命令,然后使用按钮 Maven -> Reimport All Maven Projects - Mario Codes
1
在我的办公室,无法安装插件。我们还有其他方法可以添加lombok吗?我有lombok的jar文件。 - Gvtha

61

这是两种方法的结合:

  • 在"设置->编译器->注解处理器"中勾选"启用注解处理"复选框。

  • 安装Idea中的Lombok插件,并重新启动以使更改生效。


23
如果你使用的是Mac系统,请确保在以下两个地方启用注解处理(勾选复选框)。
1.) Intellij IDEA -> Preferences -> Compiler -> Annotation Processors 2.) File -> Other Settings -> Default Settings -> Compiler -> Annotation Processors
然后, 3.) Intellij IDEA -> Preferences -> Plugins -> Browse Repositories -> 搜索“Lombok” -> 安装插件 -> 应用并重新启动IDEA。 4.) 最后可能需要重新启动Intellij IDEA。
这是我的IntelliJ IDEA和Mac版本 - IntelliJ IDEA 2017.1.5 Build # IU-171.4694.70 --- Mac OS X 10.12。

2020.3 版本中,访问默认设置的方法是:文件 -> 新建项目设置 -> 新项目首选项 - Raphael

13

我在IntelliJ中安装了Lombok插件并启用了注释处理,但我的语法高亮仍然无法正常工作。这可能是由于从2017年升级到2018年的IDEA。我在使用@ Getter和@Setter的类中的私有字段上收到“访问权限超出”的警告。

我必须卸载Lombok插件,重新启动IntelliJ,然后重新安装插件并再次启动IntelliJ。

现在一切都正常工作。


2
先生,您刚刚解决了我一个小时的该死的问题搜索。 - M. Schena
2
哈哈!很高兴我能帮到您,先生。 - Jason Slobotski
1
一样的问题,升级到2018版IDEA后它就不能用了。但你不需要重新安装插件,只需前往“设置 > 插件”,打开“更新”选项卡,应该会看到Lombok的更新。在更新完Lombok并重新启动Intellij之后,它应该会正常工作。 - Carrm
我只是禁用了它,然后重新启用并重启,这对我有效。 - Trevor
1
我安装了最新的插件和所有必要的工具,但是IntelliJ仍然无法识别get和set方法。不过构建工作正常。您的答案解决了我的问题!非常感谢! - badal jain

9

我遇到了这个问题,只需要确保:

  1. 已添加Lombok插件。
  2. 已选中注解处理器(Annotation processor)。
  3. 在build.gradle/pom.xml文件中,将lombok设置为注解处理器。

例如,在gradle中:

annotationProcessor 'org.projectlombok:lombok:1.18.12'

将此作为依赖项添加,以防有人想知道添加的含义。谢谢,这解决了我的问题。 - Tinashe Chinyanga

7

有可能你已经安装了 Lombok 插件,但是在 Android Studio 中生成的方法仍然无法识别。这种情况下,插件可能已经过时,解决方案就是简单地更新它。

偏好设置 -> 插件 -> Lombok 插件 -> 更新插件


5
  1. 进入文件(File) > 设置(Settings) > 插件(Plugins)。
    1. 点击浏览存储库(Browse repositories)...
    2. 搜索 Lombok Plugin。
    3. 点击安装插件(Install plugin)。
    4. 重启 Android Studio。

5

完成修复或配置lombok的步骤。

1. 添加依赖项

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

2. 安装 Lombok 插件到 IDE 中。 文件 > 设置 > 插件 > 搜索(lombok)> 安装

3. 勾选 "启用注解处理" 复选框,步骤如下: 设置->编译器->注解处理器

4. 重启以使更改生效。


4
我正在使用Spring boot 2.5.9的IntelliJ。以下是我的操作步骤:
  1. 添加Lombok插件
  2. 启用注解处理
  3. 在build.gradle文件或maven文件中添加lombok依赖项和annotationProcessor标签。(在此步骤后,它对我起作用了
这是我的build.gradle文件:
plugins {
    id 'org.springframework.boot' version '2.5.9'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter'
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
    useJUnitPlatform()
}

注解处理器是我所缺少的。在我添加它之后,它对我有用,谢谢。 - Lewis Munene

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接