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 .ini
或 configuration
文件中进行配置更新,如下所示:
-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
添加到您的构建路径中。但请确保不要通过 maven
或 gradle
添加一次,然后在 eclipse 路径中添加一次。
之后clean
和build
再次项目,所有错误都消失了。
【讨论】:
【参考方案20】:Intellij 用户,确保你有 3 样东西,
-
Lombok 依赖项
<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