Lombok 不适用于 Eclipse Neon
Lombok does not work for Eclipse Neon
我下载了lombok.jar(lombok-1.16.14.jar)放到我的下载中。然后我点击这个 jar,执行正确地识别了我的 MacOS 上的 Eclipse 实例,然后我选择了我想要的实例。龙目岛也在pom.xml中指定
org.projectlombok
龙目岛
1.16.14
假如
在eclipse.ini中我得到了补充:
-javaagent:../Eclipse/lombok.jar
lombok.jar 已添加到与 eclise.ini 相同的目录
/Applications/Eclipse.app/Contents/Eclipse
尽管我的 mvn
构建工作正常,但我仍然在 Eclipse 问题中遇到 setter/getter 错误。
用户代码:
@Entity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@EntityListeners(UserListener.class)
public class User implements Serializable, UserDetails {
...
错误:
The method getRole() is undefined for the type User
由于您已经将 .jar 添加到 lib
文件夹中,因此请转到 lib
然后执行 java -jar lombok-1.16.4.jar
,你会看到一个向导,指定你的 eclipse.ini
的位置,完成后你的 eclipse.ini
文件应该如下所示:
-vmargs
...
-javaagent:lombok.jar
-Xbootclasspath/a:lombok.jar
对我来说这很好用,但我在其他答案中发现:
- 你不应该只是 "restart" Eclipse,去
File -> Exit
然后再打开它。 taken from here
- 不要忘记执行
mvn clean
以确保重新编译 类。 taken from here
- 完成所有这些之后,您还应该右键单击您的项目,然后
Maven -> Update Project
taken from here
尝试为 class 添加 @Data 注释。
public @Data class user{
\do stuff
}
Antoniolazaro 在 MacOS
上给出了 Eclipse Neon 问题的解决方案
当我输入完整路径时,它适用于 Mac Os。
-javaagent:/Applications/Eclipse.app/Contents/Eclipse/lombok.jar
资源Link:
并且lombok项目负责人rzwitserloot给出了3条检查建议
- 你能给我们你的eclipse的完整路径吗?
安装?从 1.16.14 开始,安装程序应该仍然可以找到
即使使用 OOM 安装程序出现的时髦路径,也会发生 eclipse
和。我不知道为什么安装程序找不到您的日食
自动,这里。我无法在我的 mac.
上重现此内容
- lombok 卸载程序具有与
'find eclipses'
相同的功能
安装程序。 Mac doesn't have a registry and we aren't going to
dump a bunch of crud in your homedir just to keep track of where we
installed your lombok;
我们喜欢这样:没有废话。所以,那部分
(卸载程序找不到自定义安装位置和
需要您再次指定它)不是错误。
- 您仍然需要将
lombok.jar
作为依赖项添加到您的项目中
与任何其他第三方依赖项相同(例如番石榴,对于
例子)。如果您从问题描述中不清楚
确实做到了。
资源Link:
在eclipse下有手动安装lombok
的方法,我没有检查,但它可能对你有帮助-
复制 lombok.jar
到你的 eclipse 文件夹所在的位置 eclipse.ini
打开eclipse.ini
,把下面两行放在最后保存
-Xbootclasspath/a:lombok.jar
-javaagent:lombok.jar
重启eclipse
.
对我来说,下载最新的 Eclipse Neon,即 Neon 3,解决了这个问题
我的环境是:
IDE: Version: Neon.3 Release (4.6.3)
OS: Ubuntu 16.4
当我执行以下步骤时它对我有用:
1. copy `lombok.jar` to where your eclipse folder where is the `eclipse.ini` ;
2. open `eclipse.ini`,put at end the two lines below with full lombok path and save it:
-Xbootclasspath/a:/DEV/Tools/IDE/eclipse/jee-neon/lombok.jar
-javaagent:/DEV/Tools/IDE/eclipse/jee-neon/lombok.jar
3. restart `eclipse` in command line (when i try run with exist link in launcher it's not work)
4. rebuild your projects
我遇到了问题,我用来启动 eclipse 的 link 不遵守 eclipse.ini 文件 .
我的环境是:
IDE: Version: Neon.0 Release (4.6.0)
OS: Ubuntu 16.04.2 LTS
安装例程java -jar lombok-1.16.16.jar
运行良好。 IE。它将合理的行 -javaagent:<ABSOLUTE_PATH_TO_ECLIPSE_INSTALLATION>/lombok.jar
添加到 eclipse.ini
.
但是如果我通过 使用我的桌面快捷方式 启动 eclipse,它会在没有 lombok 的情况下启动(通过查看 "Help"->"About Eclipse" 进行检查)。
如果我通过执行 eclipse.ini
文件旁边的可执行文件 eclipse
来启动 eclipse,lombok 会像一个魅力一样启动。
因此我检查了我的桌面快捷方式(例如 ~/.local/share/applications/eclipse.desktop
),确实,它在没有反映 eclipse.ini
的情况下启动了 eclipse。
相反,它使用 /usr/bin/java -jar org.eclipse.equinox.launcher.jar ...
之类的东西来启动 eclipse。
所以解决方案是将桌面快捷方式中的旧 Exec
行替换为:
Exec=/opt/eclipse/neon/eclipse
其中/opt/eclipse/neon/
是我安装eclipse的地方
就我而言,我在 Windows 上使用 "Chocolatey" Eclipse 发行版。
变化不大。但是对于那些不是桌面管理员的人来说,这可能会很麻烦,因为 Chocolatey 将软件安装在 C:\ProgramData\...
中,这是一个 "admin" 目录。
换句话说,您可能需要修改快捷方式的 属性 "start in",除非您是桌面的管理员,否则这是不可能的。
这里对我有用的技巧是创建一个新的快捷方式,它具有正确的 "start in" 属性 以在 eclipse.ini 所在的目录中启动 eclipse ...
然后使用 eclipse 重新编译,然后对您的项目进行一些处理,直到 eclipse 意识到安装了 lombok...
干杯
安装lombok后,需要复制lombok.jar到你的项目中或者在maven配置xml文件中添加依赖
退出 eclipse 然后转到 eclipse 目录并打开 eclipse.ini
并在顶部添加 -clean
并重新运行 eclipse。希望你的问题得到解决。
即使执行了以下步骤(首先尝试下面给出的步骤),如果它不起作用,一个问题可能是您使用的是桌面上的 eclipse,而不是安装 eclipse 的文件夹。 运行来自桌面的 ning eclipse 有时无法加载 .ini 文件,因此 lombok 不会 运行。因此,尝试运行从您安装它的文件夹中安装 eclipse。
步骤:
1.在pom中给lombok依赖并构建它。
- lombok.jar通常下载在文件夹.m2/repository/org/projectlombok/lombok/1.x.y
- 将 jar 安装到文件夹“java -jar lombok-1.x.y.jar”
- 然后它会问你select IDE。浏览到 eclipse 安装
文件夹和 select 从那里 eclipse。
现在你的 eclipse 安装文件夹,应该包含 lombok.jar 和 eclipse.ini 应该包含行
-java代理:/lombok.jar
运行 安装文件夹中的eclipse。清理并重建项目。
现在应该可以了!
以上回复详解:
问题:
在我的场景中:
- 我在
Eclipse Photon
、 下安装了SpringBoot STS
- 我创建了一个
Spring Boot/Gradle build
项目,但在使用 Lombok @Data
时遇到了 "undefined method" 错误。
- 环境:Ubuntu Linux 18.04.
解决方案:
- cd ~/.gradle/cache/.../lombok/...;
- java-jar lombok-1.16.22.jar
注意:
java -jar lombok*.jar
调出一个 GUI
- 允许您select 更新安装的 Eclipse。
- 更新 eclipse.ini AND...
- 将
lombok-xyz.jar
复制到 Eclipse 安装文件夹中,如 lombok.jar
。
尽管这里已经有很多答案 none 给定的答案解决了我的问题,所以我也会在这里添加我的信息以防它可能对某人有所帮助:
My setup is:
Win10 Home,
Eclipse Version: Oxygen.3a Release (4.7.3a),
Eclipse Build id: 20180405-1200,
- 将 lombok 添加到我的 pom.xml
- mvn 全新安装
- 关闭日食
- 导航到我的 .m2 文件夹
.m2\repository\org\projectlombok\lombok.18.6>
- 运行:
java -jar .\lombok-1.18.6.jar
(或您拥有的任何版本
- 安装龙目岛
现在越来越有趣了。安装将以下内容添加到我的 eclipse.ini:
-javaagent:lombok.jar
它是如何将它们放在我的 .ini 文件底部的。所以它看起来像这样。
--launcher.appendVmargs
-vmargs
-...
--add-modules=ALL-SYSTEM
-javaagent:lombok.jar
我假设 -javaagent:lombok.jar
属于 -vmargs
所以我把它放在 --launcher.appendVmargs
的底部。不过那也不管用。但是当我把 -javaagent:lombok.jar
放在 vmargs
的正下方时,它就起作用了。最终我的 eclipse.ini 看起来像这样:
--launcher.appendVmargs
-vmargs
-javaagent:lombok.jar # lombok works for me if this is here
-Declipse.p2.max.threads=10
- Doomph.update.url=http://download.eclipse.org/oomph/updates/milestone/latest
-Doomph.redirection.index.redirection=index:/->http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/
-Dosgi.requiredJavaVersion=1.8
-Dosgi.instance.area.default=@user.home/eclipse-workspace
-XX:+UseG1GC
-XX:+UseStringDeduplication
#-javaagent:lombok.jar | lombok doesn't work for me if its placed here.
--add-modules=ALL-SYSTEM
-Dosgi.requiredJavaVersion=1.8
-Xms256m
-Xmx1024m
不确定为什么会出现此问题,但也许它对您有所帮助。如果您使用的是 macOS,请记得添加 -Xbootclasspath/a:lombok.ja
就像此线程中建议的其他答案一样。
我最近遇到了这个问题,上述用户提到的所有上述解决方案均无效。我遇到的问题是路径中有像“$”这样的特殊符号(这可以在 eclipse.ini 文件的最后一行中找到)到 eclipse。由于同样的原因,lombok 无法识别文件并在 eclipse.ini 文件中附加必要的两行。在我的 eclipse 路径中删除特殊字符,如 '-' 、 '$'、 '_' 修复了 mu 问题
因为,在如上所述安装 lombok 之后,我必须右键单击您的项目文件夹 -> 运行 as -> Maven clean。未检测到并正确使用 .jar
- 将 lombok jar 复制并粘贴到 eclipse 安装文件夹中。
- 运行 命令 "java -jar lombok-.jar".
- GUI 打开。
- 检查安装程序中列出的 IDE。
- 此条目应该在 eclipse.ini 文件“-javaagent:<>”中可用。
- 重新启动 Eclipse 以查找开始列出您的 java 文件中关联的 getter、setter 的更改。
只需将此语句添加到 eclipse.ini 文件(或检查是否有):
-Xbootclasspath/a:lombok.jar
-javaagent:lombok.jar
请注意,通常你只有:
-javaagent:lombok.jar
显然重启你的eclipse
对于 Mac(High Sierra)上的 Eclipse 霓虹灯:
使用lombok 1.16.14或以上版本。
安装程序通过 运行ning(双击)lombok-1.16.14.jar
文件本身启动。它应该检测已安装的版本。
在 Mac 上,它仅从应用程序目录中检测到 Eclipse.app。如果没有,您可以在弹出对话框中告诉 jar 在哪里可以找到它。请注意,您应该将其指向 eclipse.ini
文件 (Eclipse.app -> 显示应用程序内容 -> eclipse -> eclipse.ini)
较低版本的 lombok 不适用于 High Sierra。他们不检测已安装的 eclipse 实例。
最后记得重启eclipse(通过File -> exit)和运行 maven更新项目
我可能会迟到在这里回复,但为了将来参考添加这个答案,
- 请不要使用 Lombok v1.18.14,因为它会导致 eclipse 崩溃。 changelogs 中提到了它。使用下一版本 v1.18.16.
- 此答案中提到了将 lombok 设置为 eclipse 的简单方法
我下载了lombok.jar(lombok-1.16.14.jar)放到我的下载中。然后我点击这个 jar,执行正确地识别了我的 MacOS 上的 Eclipse 实例,然后我选择了我想要的实例。龙目岛也在pom.xml中指定 org.projectlombok 龙目岛 1.16.14 假如
在eclipse.ini中我得到了补充: -javaagent:../Eclipse/lombok.jar
lombok.jar 已添加到与 eclise.ini 相同的目录 /Applications/Eclipse.app/Contents/Eclipse
尽管我的 mvn
构建工作正常,但我仍然在 Eclipse 问题中遇到 setter/getter 错误。
用户代码:
@Entity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@EntityListeners(UserListener.class)
public class User implements Serializable, UserDetails {
...
错误:
The method getRole() is undefined for the type User
由于您已经将 .jar 添加到 lib
文件夹中,因此请转到 lib
然后执行 java -jar lombok-1.16.4.jar
,你会看到一个向导,指定你的 eclipse.ini
的位置,完成后你的 eclipse.ini
文件应该如下所示:
-vmargs
...
-javaagent:lombok.jar
-Xbootclasspath/a:lombok.jar
对我来说这很好用,但我在其他答案中发现:
- 你不应该只是 "restart" Eclipse,去
File -> Exit
然后再打开它。 taken from here - 不要忘记执行
mvn clean
以确保重新编译 类。 taken from here - 完成所有这些之后,您还应该右键单击您的项目,然后
Maven -> Update Project
taken from here
尝试为 class 添加 @Data 注释。
public @Data class user{
\do stuff
}
Antoniolazaro 在 MacOS
上给出了 Eclipse Neon 问题的解决方案当我输入完整路径时,它适用于 Mac Os。
-javaagent:/Applications/Eclipse.app/Contents/Eclipse/lombok.jar
资源Link:
并且lombok项目负责人rzwitserloot给出了3条检查建议
- 你能给我们你的eclipse的完整路径吗? 安装?从 1.16.14 开始,安装程序应该仍然可以找到 即使使用 OOM 安装程序出现的时髦路径,也会发生 eclipse 和。我不知道为什么安装程序找不到您的日食 自动,这里。我无法在我的 mac. 上重现此内容
- lombok 卸载程序具有与
'find eclipses'
相同的功能 安装程序。Mac doesn't have a registry and we aren't going to dump a bunch of crud in your homedir just to keep track of where we installed your lombok;
我们喜欢这样:没有废话。所以,那部分 (卸载程序找不到自定义安装位置和 需要您再次指定它)不是错误。 - 您仍然需要将
lombok.jar
作为依赖项添加到您的项目中 与任何其他第三方依赖项相同(例如番石榴,对于 例子)。如果您从问题描述中不清楚 确实做到了。
资源Link:
在eclipse下有手动安装lombok
的方法,我没有检查,但它可能对你有帮助-
复制
lombok.jar
到你的 eclipse 文件夹所在的位置eclipse.ini
打开
eclipse.ini
,把下面两行放在最后保存-Xbootclasspath/a:lombok.jar -javaagent:lombok.jar
重启
eclipse
.
对我来说,下载最新的 Eclipse Neon,即 Neon 3,解决了这个问题
我的环境是:
IDE: Version: Neon.3 Release (4.6.3)
OS: Ubuntu 16.4
当我执行以下步骤时它对我有用:
1. copy `lombok.jar` to where your eclipse folder where is the `eclipse.ini` ;
2. open `eclipse.ini`,put at end the two lines below with full lombok path and save it:
-Xbootclasspath/a:/DEV/Tools/IDE/eclipse/jee-neon/lombok.jar
-javaagent:/DEV/Tools/IDE/eclipse/jee-neon/lombok.jar
3. restart `eclipse` in command line (when i try run with exist link in launcher it's not work)
4. rebuild your projects
我遇到了问题,我用来启动 eclipse 的 link 不遵守 eclipse.ini 文件 .
我的环境是:
IDE: Version: Neon.0 Release (4.6.0)
OS: Ubuntu 16.04.2 LTS
安装例程java -jar lombok-1.16.16.jar
运行良好。 IE。它将合理的行 -javaagent:<ABSOLUTE_PATH_TO_ECLIPSE_INSTALLATION>/lombok.jar
添加到 eclipse.ini
.
但是如果我通过 使用我的桌面快捷方式 启动 eclipse,它会在没有 lombok 的情况下启动(通过查看 "Help"->"About Eclipse" 进行检查)。
如果我通过执行 eclipse.ini
文件旁边的可执行文件 eclipse
来启动 eclipse,lombok 会像一个魅力一样启动。
因此我检查了我的桌面快捷方式(例如 ~/.local/share/applications/eclipse.desktop
),确实,它在没有反映 eclipse.ini
的情况下启动了 eclipse。
相反,它使用 /usr/bin/java -jar org.eclipse.equinox.launcher.jar ...
之类的东西来启动 eclipse。
所以解决方案是将桌面快捷方式中的旧 Exec
行替换为:
Exec=/opt/eclipse/neon/eclipse
其中/opt/eclipse/neon/
是我安装eclipse的地方
就我而言,我在 Windows 上使用 "Chocolatey" Eclipse 发行版。
变化不大。但是对于那些不是桌面管理员的人来说,这可能会很麻烦,因为 Chocolatey 将软件安装在 C:\ProgramData\...
中,这是一个 "admin" 目录。
换句话说,您可能需要修改快捷方式的 属性 "start in",除非您是桌面的管理员,否则这是不可能的。
这里对我有用的技巧是创建一个新的快捷方式,它具有正确的 "start in" 属性 以在 eclipse.ini 所在的目录中启动 eclipse ...
然后使用 eclipse 重新编译,然后对您的项目进行一些处理,直到 eclipse 意识到安装了 lombok...
干杯
安装lombok后,需要复制lombok.jar到你的项目中或者在maven配置xml文件中添加依赖
退出 eclipse 然后转到 eclipse 目录并打开 eclipse.ini
并在顶部添加 -clean
并重新运行 eclipse。希望你的问题得到解决。
即使执行了以下步骤(首先尝试下面给出的步骤),如果它不起作用,一个问题可能是您使用的是桌面上的 eclipse,而不是安装 eclipse 的文件夹。 运行来自桌面的 ning eclipse 有时无法加载 .ini 文件,因此 lombok 不会 运行。因此,尝试运行从您安装它的文件夹中安装 eclipse。
步骤: 1.在pom中给lombok依赖并构建它。
- lombok.jar通常下载在文件夹.m2/repository/org/projectlombok/lombok/1.x.y
- 将 jar 安装到文件夹“java -jar lombok-1.x.y.jar”
- 然后它会问你select IDE。浏览到 eclipse 安装 文件夹和 select 从那里 eclipse。
现在你的 eclipse 安装文件夹,应该包含 lombok.jar 和 eclipse.ini 应该包含行 -java代理:/lombok.jar
运行 安装文件夹中的eclipse。清理并重建项目。 现在应该可以了!
以上回复详解:
问题:
在我的场景中:
- 我在
Eclipse Photon
、 下安装了SpringBoot STS
- 我创建了一个
Spring Boot/Gradle build
项目,但在使用 Lombok@Data
时遇到了 "undefined method" 错误。 - 环境:Ubuntu Linux 18.04.
- 我在
解决方案:
- cd ~/.gradle/cache/.../lombok/...;
- java-jar lombok-1.16.22.jar
注意:
java -jar lombok*.jar
调出一个 GUI- 允许您select 更新安装的 Eclipse。
- 更新 eclipse.ini AND...
- 将
lombok-xyz.jar
复制到 Eclipse 安装文件夹中,如lombok.jar
。
尽管这里已经有很多答案 none 给定的答案解决了我的问题,所以我也会在这里添加我的信息以防它可能对某人有所帮助:
My setup is:
Win10 Home,
Eclipse Version: Oxygen.3a Release (4.7.3a),
Eclipse Build id: 20180405-1200,
- 将 lombok 添加到我的 pom.xml
- mvn 全新安装
- 关闭日食
- 导航到我的 .m2 文件夹
.m2\repository\org\projectlombok\lombok.18.6>
- 运行:
java -jar .\lombok-1.18.6.jar
(或您拥有的任何版本 - 安装龙目岛
现在越来越有趣了。安装将以下内容添加到我的 eclipse.ini:
-javaagent:lombok.jar
它是如何将它们放在我的 .ini 文件底部的。所以它看起来像这样。
--launcher.appendVmargs
-vmargs
-...
--add-modules=ALL-SYSTEM
-javaagent:lombok.jar
我假设 -javaagent:lombok.jar
属于 -vmargs
所以我把它放在 --launcher.appendVmargs
的底部。不过那也不管用。但是当我把 -javaagent:lombok.jar
放在 vmargs
的正下方时,它就起作用了。最终我的 eclipse.ini 看起来像这样:
--launcher.appendVmargs
-vmargs
-javaagent:lombok.jar # lombok works for me if this is here
-Declipse.p2.max.threads=10
- Doomph.update.url=http://download.eclipse.org/oomph/updates/milestone/latest
-Doomph.redirection.index.redirection=index:/->http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/
-Dosgi.requiredJavaVersion=1.8
-Dosgi.instance.area.default=@user.home/eclipse-workspace
-XX:+UseG1GC
-XX:+UseStringDeduplication
#-javaagent:lombok.jar | lombok doesn't work for me if its placed here.
--add-modules=ALL-SYSTEM
-Dosgi.requiredJavaVersion=1.8
-Xms256m
-Xmx1024m
不确定为什么会出现此问题,但也许它对您有所帮助。如果您使用的是 macOS,请记得添加 -Xbootclasspath/a:lombok.ja
就像此线程中建议的其他答案一样。
我最近遇到了这个问题,上述用户提到的所有上述解决方案均无效。我遇到的问题是路径中有像“$”这样的特殊符号(这可以在 eclipse.ini 文件的最后一行中找到)到 eclipse。由于同样的原因,lombok 无法识别文件并在 eclipse.ini 文件中附加必要的两行。在我的 eclipse 路径中删除特殊字符,如 '-' 、 '$'、 '_' 修复了 mu 问题
因为,在如上所述安装 lombok 之后,我必须右键单击您的项目文件夹 -> 运行 as -> Maven clean。未检测到并正确使用 .jar
- 将 lombok jar 复制并粘贴到 eclipse 安装文件夹中。
- 运行 命令 "java -jar lombok-.jar".
- GUI 打开。
- 检查安装程序中列出的 IDE。
- 此条目应该在 eclipse.ini 文件“-javaagent:<>”中可用。
- 重新启动 Eclipse 以查找开始列出您的 java 文件中关联的 getter、setter 的更改。
只需将此语句添加到 eclipse.ini 文件(或检查是否有):
-Xbootclasspath/a:lombok.jar
-javaagent:lombok.jar
请注意,通常你只有:
-javaagent:lombok.jar
显然重启你的eclipse
对于 Mac(High Sierra)上的 Eclipse 霓虹灯:
使用lombok 1.16.14或以上版本。
安装程序通过 运行ning(双击)
lombok-1.16.14.jar
文件本身启动。它应该检测已安装的版本。在 Mac 上,它仅从应用程序目录中检测到 Eclipse.app。如果没有,您可以在弹出对话框中告诉 jar 在哪里可以找到它。请注意,您应该将其指向
eclipse.ini
文件 (Eclipse.app -> 显示应用程序内容 -> eclipse -> eclipse.ini)较低版本的 lombok 不适用于 High Sierra。他们不检测已安装的 eclipse 实例。
最后记得重启eclipse(通过File -> exit)和运行 maven更新项目
我可能会迟到在这里回复,但为了将来参考添加这个答案,
- 请不要使用 Lombok v1.18.14,因为它会导致 eclipse 崩溃。 changelogs 中提到了它。使用下一版本 v1.18.16.
- 此答案中提到了将 lombok 设置为 eclipse 的简单方法