Lombok不适用于Eclipse Neon

时间:2017-02-24 17:10:47

标签: java eclipse maven lombok

我下载了lombok.jar(lombok-1.16.14.jar)把它放到我的下载中。然后我点击了这个jar,执行正确识别了MacOS上的Eclipse实例,然后我选择了我想要的实例。 Lombok也在pom.xml中指定            org.projectlombok       龙目岛        14年1月16日        提供     

在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 

18 个答案:

答案 0 :(得分:36)

由于您已将.jar添加到lib文件夹,因此请转到lib 并执行java -jar lombok-1.16.4.jar,您会看到一个向导,指定eclipse.ini的位置,完成此操作后,您的eclipse.ini文件应如下所示:

    -vmargs
    ...
    -javaagent:lombok.jar
    -Xbootclasspath/a:lombok.jar

对我来说这很好用,但我在其他答案中找到了:

  • 你不应该只是"重启" Eclipse,转到File -> Exit,然后再次打开它。 taken from here
  • 请勿忘记执行mvn clean只是为了确保您重新编译了课程。 taken from here
  • 完成所有这些后,您还应右键点击您的项目,然后Maven -> Update Project taken from here

答案 1 :(得分:10)

有一种手动方式在eclipse下安装lombok,我没有检查它,但它可能会帮助你 -

  1. lombok.jar复制到您的eclipse文件夹所在的位置eclipse.ini

  2. 打开eclipse.ini,将下面的两行放在最后并保存

    -Xbootclasspath/a:lombok.jar
    -javaagent:lombok.jar
    
  3. 重新启动eclipse

答案 2 :(得分:5)

Antoniolazaro已经为MacOS上的Eclipse Neon问题提供了解决方案

当我输入完整路径时,它适用于Mac Os。

-javaagent:/Applications/Eclipse.app/Contents/Eclipse/lombok.jar

资源链接:

  1. https://github.com/rzwitserloot/lombok/issues/1173
  2. lombok项目所有者rzwitserloot提供了3条检查建议

    1. 你能否给我们一个完整的路径,从根,你的日食 安装?从1.16.14开始,安装程序仍应找到 甚至使用OOM安装程序出现的时髦路径也会出现这种情况 用。我不知道为什么安装程序没有找到你的日食 自动,在这里。我无法在我的Mac上重现这一点。
    2. 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;我们喜欢这样:没有任何瑕疵。那么,那部分 (卸载程序无法找到自定义安装位置和 要求你再次指明它不是一个错误。
    3. 您仍然需要将lombok.jar作为依赖项添加到项目中 与任何其他第三方依赖相同(类似于番石榴,用于 例)。如果你的话,你的问题描述中并不清楚 实际上是这样做的。
    4. 资源链接:

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

答案 3 :(得分:5)

我遇到了问题,我以前开始使用eclipse的链接并不尊重eclipse.ini文件

我的环境是:

IDE: Version: Neon.0 Release (4.6.0)
OS: Ubuntu 16.04.2 LTS

安装例程java -jar lombok-1.16.16.jar运行良好。即它会将合理的行-javaagent:<ABSOLUTE_PATH_TO_ECLIPSE_INSTALLATION>/lombok.jar添加到eclipse.ini

但如果我通过使用我的桌面快捷方式启动eclipse,它会在没有lombok的情况下启动(通过查看“帮助” - >“关于Eclipse”查看)。 如果我通过执行eclipse文件旁边的可执行文件eclipse.ini来启动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的地方。

答案 4 :(得分:2)

即使按照以下步骤操作(请先尝试以下给出的步骤),如果仍然不能执行操作,则问题可能是您是从桌面而不是从安装eclipse的文件夹中使用eclipse。从桌面运行Eclipse有时无法加载.ini文件,因此lombok无法运行。因此, 尝试从安装它的文件夹中运行eclipse

步骤:  1.在pom中提供lombok依赖项并进行构建。

  1. lombok.jar通常下载到文件夹 .m2 / repository / org / projectlombok / lombok / 1.x.y
  2. 将jar安装在文件夹“ java -jar lombok-1.x.y.jar ”中
  3. 然后它将要求您选择IDE。浏览到Eclipse安装 文件夹,然后从中选择Eclipse。
  4. 现在,您的eclipse安装文件夹应包含lombok.jar,而eclipse.ini应包含以下行 -javaagent:/lombok.jar

  5. 从安装文件夹运行eclipse。清理并重建项目。 现在应该可以使用!

答案 5 :(得分:1)

为该类尝试@Data注释。

public @Data class user{
 \\do stuff
 }

答案 6 :(得分:1)

对我来说,下载最新的Eclipse Neon,即Neon 3,修复了问题

答案 7 :(得分:1)

我的环境是:

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

答案 8 :(得分:0)

对于Mac(High Sierra)上的Eclipse霓虹灯:

  • 使用lombok 1.16.14或更高版本。

  • 安装程序通过运行(双击)lombok-1.16.14.jar文件本身来启动。它应该检测已安装的版本。

  • 在Mac上,它仅从Applications目录检测Eclipse.app。如果没有,您可以在弹出对话框中告诉jar在哪里找到它。请注意,您应该将其指向eclipse.ini文件(Eclipse.app->显示应用程序内容-> eclipse-> eclipse.ini)

  • 龙目岛的较低版本在High Sierra上不起作用。他们不检测已安装的Eclipse实例。

  • 最后记得要重新启动Eclipse(通过File-> exit)并运行maven update project。

答案 9 :(得分:0)

只需将此语句添加到eclipse.ini文件中即可(或检查是否已保存):

-Xbootclasspath / a:lombok.jar

-javaagent:lombok.jar

请注意,通常您只有:

-javaagent:lombok.jar

很明显重新开始日食

答案 10 :(得分:0)

  1. 将lombok jar复制并粘贴到eclipse安装文件夹中。
  2. 运行命令“ java -jar lombok-.jar”。
  3. GUI打开。
  4. 检查安装程序中列出的IDE。
  5. 该条目应该在eclipse.ini文件“ -javaagent:<>”中可用。
  6. 重新启动Eclipse以查找更改,这些更改开始在Java文件中列出关联的getter,setter。

答案 11 :(得分:0)

对于,在如上所述安装了lombok之后,我必须右键单击您的项目文件夹-> Run as-> Maven clean。 Ne .jar已被检测并正确使用

答案 12 :(得分:0)

我最近遇到了这个问题,上述用户提到的所有上述解决方案均无效。我遇到的问题是路径中有特殊符号,例如“ $”(可以在eclipse.ini文件的最后一行找到)。由于相同的原因,lombok无法识别该文件,并在eclipse.ini文件中附加了必要的两行。删除我的蚀路径中固定字符问题中的特殊字符,例如“-”,“ $”,“ _”

答案 13 :(得分:0)

虽然这里已经有很多答案,但是给出的答案都不能解决我的问题,因此,我也会在此处添加我的信息,以防可能对某人有所帮助:

My setup is:
Win10 Home,
Eclipse Version: Oxygen.3a Release (4.7.3a),
Eclipse Build id: 20180405-1200,
  1. 将lombok添加到我的pom.xml
  2. mvn全新安装
  3. 日食
  4. 导航到我的.m2文件夹.m2\repository\org\projectlombok\lombok\1.18.6>
  5. 运行:java -jar .\lombok-1.18.6.jar(或您使用的任何版本
  6. 安装lombok

现在越来越有趣了。安装将以下内容添加到我的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

答案 14 :(得分:0)

详细说明以上答复:

  • 问题:

    在我的情况下:

    1. 我在Eclipse Photon下安装了SpringBoot STS,
    2. 我创建了一个Spring Boot/Gradle build项目,并使用Lombok @Data遇到了“未定义的方法”错误。
    3. 环境:Ubuntu Linux 18.04。
  • 解决方案:

    1. cd〜/ .gradle / cache /.../ lombok / ...;
    2. java -jar lombok-1.16.22.jar
  • 注意:

    java -jar lombok*.jar弹出一个

    的GUI
    1. 允许您选择要更新的Eclipse安装。
    2. 更新eclipse.ini AND ...
    3. lombok-xyz.jar复制为lombok.jar到Eclipse安装文件夹中。

答案 15 :(得分:0)

退出eclipse,然后转到eclipse目录并打开eclipse.ini并在顶部添加-clean并重新运行eclipse。希望你的问题得到解决。

答案 16 :(得分:0)

安装lombok之后,需要将lombok.jar复制到项目中或在maven配置xml文件中添加依赖项

答案 17 :(得分:0)

就我而言,我在Windows上使用Eclipse的“Chocolatey”发行版。

它没有太大变化。但对于那些不是桌面管理员的人来说,这可能很麻烦,因为Chocolatey在C:\ProgramData\...中安装了软件,这是一个“管理员”目录。

换句话说,您可能需要修改快捷方式的属性“start in”,除非您是桌面管理员,否则无法进行此操作。

这里有用的技巧是创建一个新的快捷方式,它具有正确的“start in”属性,可以在eclipse.ini所在的目录中启动eclipse ...

然后使用eclipse重新编译,然后对你的项目进行一些处理,直到eclipse意识到已经安装了lombok ......

干杯