Lombok 没有生成 getter 和 setter

Posted

技术标签:

【中文标题】Lombok 没有生成 getter 和 setter【英文标题】:Lombok is not generating getter and setter 【发布时间】:2012-08-01 23:42:23 【问题描述】:

我只是试图将一个基于 Maven 的项目发送到另一台计算机上,然后 HORROR, 到处都是红色标记!!

但是,mvn clean install 正在构建中。

很快,我注意到 Lombok 没有为我的类生成 getter 和 setter,尽管 Eclipse 可以正确识别 @Getter@Setter

两台计算机使用相同的 Maven 版本 (3.0.4) 但不同的 JDK(1.6_23 和 1.6_33)。他们都使用 Eclipse Indigo 32 位。你知道如何解决这个问题吗?

【问题讨论】:

有关完整说明,请参阅***.com/questions/3418865/…。这还包括如何通过快捷方式启动 Eclipse。 Cannot make Project Lombok work on Eclipse (Helios)的可能重复 我完成了上述所有步骤,但仍然无法正常工作。我再次查看 pom.xml 并注释掉默认出现的 。我后来添加了这个 但也将其注释掉了。 为什么只有 Lombok 似乎有这个问题,似乎是有意设计的(为了引起注意)?其他注释 jar 中的装饰器似乎在导入后才可以工作。 【参考方案1】:

实际上,当您开始全新的 Eclipse 安装时,您需要“安装”Lombok 才能使用它。

    转到 Lombok jar 所在的位置(例如(例如,您可以在 ~/.m2/repository/org/projectlombok/lombok/1.16.10/lombok-1.16.10.jar 中找到),运行它(例如:java -jar lombok-1.16.10.jar)。应该会出现一个窗口,浏览到您的 eclipse.exe 位置。 点击安装。 启动 Eclipse,更新所有项目的项目配置,瞧。

【讨论】:

如果即使在执行了上述步骤之后它仍然不起作用,那么 EXIT 并再次开始 eclipse。简单文件-> 重启不起作用。显式 EXIT 和 Start 是必要的。 我相信我是在 eclipse 关闭时这样做的 如果它已关闭,则可以在下次启动时使用。但是如果它已经启动并且需要显式退出和启动。 干得好@Elidosa --- 它正在工作,但是需要退出并启动 eclipse ,只有重启不起作用 我还需要清理项目以消除编译错误【参考方案2】:

如果您使用 STS。您必须通过运行 lombok-xyz.jar 在 Eclipse 中安装 Lombok

请尝试以下步骤:

    在 Maven 中包含 pom。 退出/关闭 STS 在 ~/.m2/repository/org/projectlombok/lombok/version.x 中找到 lombok Jar

    来自命令提示符/Shell java -jar lombok-1.x.y.jar

    启动 STS

就是这样。

编辑: 我这样做了,但仍然显示错误,如 cmets 中所述。 所以我更新了项目:右键单击项目 -> Maven -> 更新项目,错误消失了。

【讨论】:

我仍然面临这个问题,不确定发生了什么问题? 您有任何错误信息吗?你能在你的 Pojo 文件中导入这个类吗? @Prateek 如果不工作,请更换lombok版本。再试一次 我手动下载了 lombok.jar,运行它,然后重新启动 eclipse 并重建项目,它成功了!... 我有同样的问题尝试了一切但没有奏效。然后我所做的是,我安装了新的,在做任何事情之前我安装了 Lombok。有效。此外,请确保您从新的工作区开始。它不适用于旧版本。【参考方案3】:

请注意,如果您使用的是 IntelliJ,则需要安装 Lombok 插件(可从 IDE 设置中获得)并启用注释处理。

【讨论】:

当他们面临同样的事情并且不知道 IntelliJ 是否需要该插件时,仍然有几个人会来到这个线程。竖起大拇指 如果是 Netbeans?有什么想法吗?【参考方案4】:

下载Lombok Jar,让maven代我们下载:

 <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.18</version>
    </dependency>

现在...在新创建的项目上执行 mvn clean install 命令,将这个 jar 下载到本地存储库中。 转到 jar 位置,执行命令提示符,运行命令: java -jar lombok-1.16.18.jar

单击“指定位置”按钮并找到 eclipse.exe 路径 喜欢 :

最后通过点击“安装/更新”来安装它

【讨论】:

这是迄今为止我找到的最简单的解决方案。有效。谢谢。【参考方案5】:

如果你使用日食。您必须通过运行 lombok-xyz.jar 在 Eclipse 中安装 lombok(例如,您可以在 ~/.m2/repository/org/projectlombok/lombok/1.12.6/lombok-1.12.6.jar 中找到)。

随着安装窗口的打开,您必须选择 Eclipse 的位置。并让它在里面安装lombok。之后您必须重新启动 Eclipse。

【讨论】:

"显式退出然后重新开始。"。普通文件-->重启不起作用。【参考方案6】:

这些是命令行指令,上面的图形版本不可用,或者您无法通过双击打开 Lombok jar 文件,如在 Ubuntu 中。

在撰写本文时,使用 Lombok 并不简单,只需在 POM xml 文件中添加依赖项并添加注释即可。这些是接下来的步骤:

1) 找到 maven 下载 Lombok jar 文件的位置;通常它位于主目录内的 .m2 文件夹中。然后执行以下命令。

java -jar lombok-1.16.18.jar install <path of where your IDE is installed>

示例用法:

java -jar lombok-x.xx.xx.jar install ~/Downloads/spring-tool-suite-3.9.1.RELEASE-e4.7.1a-linux-gtk-x86_64/sts-bundle/sts-3.9.1.RELEASE/

上述命令基本上会在您的 IDE .iniconfiguration 文件中进行配置更新,如下所示:

-javaagent:/home/neshant/Downloads/spring-tool-suite-3.9.1.RELEASE-e4.7.1a-linux-gtk-x86_64/sts-bundle/sts-3.9.1.RELEASE/lombok.jar

这可确保 IDE 能够理解 @Data@Getter@Setter 注释。奇怪的是它必须如此复杂。

【讨论】:

在这里,我在 2020 年仍然发现您的帖子很有用。谢谢!【参考方案7】:

如果你使用maven和Eclipse,必须手动安装。

    验证 pom

 <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.10</version>
            <type>jar</type>
        </dependency>
    转到 Maven 依赖项

    在库中右键单击并作为 Java 应用程序运行

    指定位置 IDE,安装并关闭 IDE (Eclipse)。

【讨论】:

我遵循了您描述的所有步骤,但使用 eclipse 2019-12 和 lombok 1.18.12,eclipse 无法识别我的模型中有 \@getter 或 \@setter 注释。 lombok 是否有一个 getter 或 setter 生成器?【参考方案8】:

仅仅添加 Lombok 的依赖是不够的。 你也必须安装龙目岛的插件。

您可以通过导航来获取您的 Lombok jar 文件(仅当您在任何 POM 中添加了依赖项时。)

m2\repository\org\projectlombok\lombok\1.18.12\lombok-1.18.12

另外,如果 Lombok 找不到 IDE,请手动指定 IDE 的 .exe 并单击安装。

重新启动您的 IDE。

就是这样。

如果你遇到任何问题,

下面是一个关于如何安装龙目岛插件的美丽而简短的视频。

为了节省您的时间,您可以从 1:40 开始。

https://www.youtube.com/watch?v=5K6NNX-GGDI

如果还是不行,

验证 lombok.jar 是否存在于您的 sts.ini 文件中(sts 配置文件,存在于 sts 文件夹中。)

-javaagent:lombok.jar

按 Alt+F5。这将更新您的 Maven。

关闭您的 IDE 并重新启动它。

【讨论】:

这个答案怎么连一票都没有。这真的很有帮助。非常感谢。【参考方案9】:

如果您使用 STS。您必须通过运行 lombok-abc.jar 在 Eclipse 中安装 Lombok

请按照以下步骤操作:

-在 Maven 中包含 pom。 -Exit/Shutdown STS(必须) - 在 ~.m2\repository\org\projectlombok\lombok\1.18.12 中找到 lombok Jar -从命令

之后

然后选择STS.exe

然后点击更新/更新

然后退出安装程序

快乐编码

块引用

【讨论】:

重复回答【参考方案10】:

对于 Sprint STS - 将 lombok.jar 文件放在 eclipse/sts exe 文件夹中,并将以下条目添加到 STS.ini。

-javaagent:lombok.jar

【讨论】:

【参考方案11】:

Eclipse IDE 解决方案:

1. pom.xml 中的 Maven 依赖项

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

2。转到 Maven 依赖 jar >> 右键单击​​ >> 运行方式 >> Java 应用程序

3.选择Socket Server并点击OK

ch.qos.logback.classic.net.SimpleSSLSocketServer
ch.qos.logback.classic.net.SimpleSocketServer

4.在控制台上显示消息,例如:

参数数量错误。 用法:java ch.qos.logback.classic.net.SimpleSocketServer 端口配置文件

【讨论】:

【参考方案12】:

我花了一整天,你可以这样:

    添加到 maven lombok 安装eclipse 下载龙目岛 复制到eclipse文件夹 添加到文件 eclipse.ini 下一个文本 -javaagent:lombok.jar 选择项目(不是父项目)中的活动注释处理 -> 属性 -> Java 编译器 -> 注释处理 选择启用项目特定设置全选启用复选框 重新启动,它应该可以工作。测试 ubuntu 20.04 和 eclipse 2021 年

【讨论】:

【参考方案13】:

在全新安装的 Eclipse 或 STS 上使用 lombok 时,您必须:

    安装可以在https://projectlombok.org/download 获得的lombok jar。运行 jar(如果使用 Windows,则以管理员身份)并指定 Eclipse/STS 安装的路径。

    重新启动 IDE(Eclipse 或 STS)

    给 Eclipse 一些时间来为 lombok 生成类文件(在某些情况下可能需要长达 4 分钟)

【讨论】:

【参考方案14】:

对于 Mac 上的 Spring ToolSuite 4,他们将 ini 重命名为 SpringToolSuite4.ini。

您可以重命名或将其复制到 STS.ini 以被 lombok 识别。然后将其复制回原始名称以供 IDE 读取。 (虽然符号链接有效,但没有尝试过。)

【讨论】:

【参考方案15】:

我正在使用红帽 Jboss 开发者工作室。我通过以下方式解决了这个问题:

    项目具有lombok 依赖项。首先查看您的.m2 存储库并找到lombok jar

    双击jar,你会看到安装程序在那里指定IDE的路径,如C:\Users\xxx\devstudio\studio\devstudio.exe

    重启IDE并更新maven项目会报错

【讨论】:

欢迎来到 ***!请尝试使用正确的列表和markdown language like this,使您的答案更具可读性。【参考方案16】:

1) 运行命令java -jar lombok-1.16.10.jar。这需要从您的 lombok.jar 文件的目录中运行。

2) 通过选择eclipse.ini 文件(安装的eclipse 目录)手动添加位置。通过“指定位置

注意:不要添加eclipse.exe,因为它会使eclipse编辑器损坏。

How to add the eclipse.ini file

【讨论】:

【参考方案17】:

我也遇到了这个问题,就我而言,这是因为我在没有升级 Lombok 插件的情况下升级了 IntelliJ IDEA。所以它们是不兼容的。

【讨论】:

只需升级 Intellij Idea 中的 Lombok 插件并重启 IDE【参考方案18】:

下载Lombok Jar文件https://projectlombok.org/downloads/lombok.jar

添加maven依赖:

   <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.16.18</version>
   </dependency>   

开始Lombok安装java -jar lombok-1.16.18.jar

在此链接中查找完整示例:https://howtodoinjava.com/automation/lombok-eclipse-installation-examples/

【讨论】:

【参考方案19】:

我要做的是在eclipse安装目录中安装lombok

从here 下载lombok.jar,然后使用以下命令进行安装:

java -jar lombok.jar

然后确保将lombok.jar 添加到您的构建路径中。但请确保不要通过 mavengradle 添加一次,然后在 eclipse 路径中添加一次。

之后cleanbuild 再次项目,所有错误都消失了。

【讨论】:

【参考方案20】:

Intellij 用户,确保你有 3 样东西,

    Lo​​mbok 依赖项
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.8</version>
            <scope>provided</scope>
        </dependency>

    Lombok 的 IntelliJ 插件

    Lombok 注释,例如 @Getter @Setter(确保它来自 lombok 而不是其他地方)

它应该可以工作。

【讨论】:

【参考方案21】:

在 mac os lombok 中将无法找到 eclipse 位置。 请单击指定位置并转到 eclipse 安装文件夹 你可以找到eclipse.ini文件选择那个

【讨论】:

【参考方案22】:

似乎上面的答案在某些情况下是可以的,但我的情况不知何故运作良好。

所以,我做了什么(对我有用):

    我使用 Spring Suit 4 (SpringToolSuite4.exe) 项目必须是 maven-project 我直接安装 lombok 我在 pom.xml (1.18.12) 中放入的版本不起作用 我改通过Market Place安装lombok最新版本,使用站点:https://projectlombok.org/p2,版本为1.18.22 我现在在我的SpringToolSuite4.ini 中看到这一行:-javaagent:D:\xxx\eclipse\sts-4.13.0.RELEASE\plugins\org.projectlombok.agent_1.18.22/lombok.jar 重新打开我的 STS 并按:ALT+F5(打开您的 maven 项目),单击“确定”并等待所有项目构建完成

他们正在工作。

讨论

这可能首先是所有解决方案都在工作,但由于我们一直认为的版本,我们需要使用与 pom.xml 中相同的版本,但它也可以与最新版本一起使用(如果有人有,请纠正我评论)。

Point 2. maven 项目,我从上面的其他解决方案开始,但仍然出现错误;我们必须以某种方式确保这一点。

再备注一下当您在 About Spring Tool(或 About Eclipse)中没有看到一行消息时,意味着您的 lombok 安装不正确,可能再次尝试我的上述解决方案。

希望此讨论对其他人有所帮助。

【讨论】:

【参考方案23】:

从私有静态字段中删除 @Getter。

https://github.com/rzwitserloot/lombok/issues/1493

【讨论】:

【参考方案24】:

如果您使用的是 maven,请转到项目结构中的 maven 依赖项,然后将 lombok jar 作为 java 项目运行,它将安装它然后退出并启动 eclipse

【讨论】:

以上是关于Lombok 没有生成 getter 和 setter的主要内容,如果未能解决你的问题,请参考以下文章

使用lombok注解@Getter @Setter方法代码编译成功,但是没有生成get,set方法

IDE 不显示 Lombok 为 Jackson 注释类生成的 getter 和 setter

lombok的简单介绍

自动生成getter,setter方法的插件lombok

Lombok的@Data@Setter@Getter注解没反应问题解决

在 Lombok 中省略一个 Setter/Getter