【问题标题】:Lombok does not work for Eclipse NeonLombok 不适用于 Eclipse Neon
【发布时间】:2017-02-24 17:10:47
【问题描述】:

我下载了 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 

【问题讨论】:

  • 将 lombok 添加为依赖项?
  • 已经存在:org.projectlomboklomboktrue
  • 用户确定有getRole方法?
  • 我看到您正在使用不是来自 Lombok 的注释 @EntityListeners,也许这些注释处理器之间存在一些冲突? Lombok 在上一版本中进行了一些更改,以便能够与其他一些处理器兼容 projectlombok.org/changelog.html
  • 重启eclipse并从eclipse构建项目。有时 eclipse 无法将其项目树与实际项目同步

标签: java eclipse maven lombok


【解决方案1】:

既然您已经将 .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

【讨论】:

  • 我在运行 lombok.jar 后看到 -javaagent:../Eclipse/lombok.jar。但我没有看到 -Xbootclasspath/a:lombok.jar。
  • @AlexNarinsky 请尝试手动添加该行并告诉我
  • 也没有帮助
  • @AlexNarinsky 也许您遇到了我的回答中提到的类似问题(即仅桌面链接不尊重 eclipse.ini 中定义的设置)。您可以通过使用eclipse.ini 旁边的eclipse 可执行文件从命令行启动eclipse 来检查。如果它工作正常,您会在“帮助”->“关于 Eclipse”中看到类似“Lombok ... 已安装”的内容。
  • 完美! “不只是重新启动 Eclipse”提示解决了我的问题。
【解决方案2】:

eclipse下有手动安装lombok的方法,我没查过,不过可能对你有帮助-

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

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

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

【讨论】:

【解决方案3】:

我遇到了问题,我用来启动 eclipse 的链接不尊重 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 的情况下启动(通过查看“帮助”->“关于 Eclipse”来检查)。 如果我通过执行eclipse.ini 文件旁边的可执行文件eclipse 来启动eclipse,lombok 会像魅力一样启动。

因此我检查了我的桌面快捷方式(例如~/.local/share/applications/eclipse.desktop),确实,它启动了 eclipse 而不反映eclipse.ini。 相反,它使用 /usr/bin/java -jar org.eclipse.equinox.launcher.jar ... 之类的东西来启动 eclipse。

因此解决方案是将桌面快捷方式中的旧 Exec 行替换为:

Exec=/opt/eclipse/neon/eclipse

其中/opt/eclipse/neon/是我安装eclipse的地方。

【讨论】:

    【解决方案4】:

    Antoniolazaro 给出了 MacOS 上 Eclipse Neon 问题的解决方案

    当我输入完整路径时,它可以在 Mac Os 上运行。

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

    资源链接:

    1. https://github.com/rzwitserloot/lombok/issues/1173

    而lombok项目主rzwitserloot给出了3条检查建议

    1. 能否给我们完整的路径,从根目录,你的 Eclipse 安装?从 1.16.14 开始,安装程序仍应找到 即使使用 OOM 安装程序出现的时髦路径也能实现日食 和。我不知道为什么安装程序没有找到你的 Eclipse 自动,在这里。我无法在我的 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 作为依赖项添加到您的项目中 与任何其他第三方依赖项相同(例如番石榴,对于 例子)。从您的问题描述中不清楚,如果您 确实做到了。

    资源链接:

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

    【讨论】:

    • 请阅读更新后的说明。指定完整路径没有帮助
    • @AlexNarinsky 感谢分享
    【解决方案5】:

    即使按照以下步骤(首先尝试下面给出的步骤),如果它不起作用,一个问题可能是您正在从桌面使用 eclipse,而不是从安装 eclipse 的文件夹中使用。从桌面运行 eclipse 有时无法加载 .ini 文件,因此 lombok 不会运行。所以,尝试从您安装它的文件夹中运行 eclipse

    步骤: 1.在pom中给lombok依赖并构建它。

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

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

    【讨论】:

    • 这实际上是最好的回复之一 - 谢谢!请参阅下面的解释。
    【解决方案6】:

    为该类尝试@Data注解。

    public @Data class user{
     \\do stuff
     }
    

    【讨论】:

    • 没有帮助,我也得到“数据无法解析为类型”。我还添加了:import lombok.Data;
    【解决方案7】:

    对我来说,下载最新的 Eclipse Neon,即 Neon 3,解决了这个问题

    【讨论】:

      【解决方案8】:

      我的环境是:

      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
      

      【讨论】:

      • 你好@rafambbr,因为你提到使用现有链接启动eclipse没有启动lombok,你可以检查你的桌面链接使用的Exec命令。
      【解决方案9】:

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

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

      换句话说,您可能需要修改快捷方式的“开始于”属性,除非您是桌面的管理员,否则这是不可能的。

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

      然后使用 eclipse 重新编译,然后在你的项目上工作一点,直到 eclipse 意识到已经安装了 lombok...

      干杯

      【讨论】:

        【解决方案10】:

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

        【讨论】:

          【解决方案11】:

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

          【讨论】:

            【解决方案12】:

            详细说明以上回复:

            • 问题:

              在我的场景中:

              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 调出一个图形用户界面,

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

            【讨论】:

              【解决方案13】:

              尽管这里已经有很多答案,但没有一个给出的答案解决了我的问题,所以我也会在这里添加我的信息,以防它可能对某人有所帮助:

              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.jarright 放在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】:

                我最近遇到了这个问题,上述用户提到的所有上述解决方案都不起作用。我遇到的问题是路径中有特殊符号,如'$'(这可以在 eclipse.ini 文件的最后一行中找到)到 Eclipse。由于同样的原因,lombok 无法识别文件并在 eclipse.ini 文件中附加必要的两行。删除我的 Eclipse 路径中的特殊字符,如 '-' , '$' , '_' 修复了 mu 问题

                【讨论】:

                  【解决方案15】:

                  因为,像上面提到的那样安装 lombok 后,我必须右键单击您的项目文件夹 -> 运行方式 -> Maven clean。 Ne .jar 被检测到并正确使用

                  【讨论】:

                    【解决方案16】:
                    1. 将 lombok jar 复制并粘贴到 eclipse 安装文件夹中。
                    2. 运行命令“java -jar lombok-.jar”。
                    3. GUI 随即打开。
                    4. 检查安装程序中列出的 IDE。
                    5. 该条目应该在 eclipse.ini 文件“-javaagent:”中可用。
                    6. 重新启动 Eclipse 以查找开始在您的 java 文件中列出关联的 getter、setter 的更改。

                    【讨论】:

                      【解决方案17】:

                      只需将此语句添加到 eclipse.ini 文件中(或检查是否有):

                      -Xbootclasspath/a:lombok.jar

                      -javaagent:lombok.jar

                      请注意,通常你只有:

                      -javaagent:lombok.jar

                      显然重启你的eclipse

                      【讨论】:

                        【解决方案18】:

                        对于 Mac (High Sierra) 上的 Eclipse neon:

                        • 使用 lombok 版本 1.16.14 或更高版本。

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

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

                        • 低版本的 lombok 不适用于 High Sierra。他们不检测已安装的 Eclipse 实例。

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

                        【讨论】:

                          【解决方案19】:

                          我可能会迟到在这里回复,但为了将来的参考添加这个答案,

                          1. 请不要使用 Lombok v1.18.14,因为它会导致 eclipse 崩溃。在changelogs 中提到了它。使用下一个版本 v1.18.16。
                          2. 这个答案https://stackoverflow.com/a/69332138/3637115中提到了将lombok设置为eclipse的简单方法

                          【讨论】:

                            猜你喜欢
                            • 1970-01-01
                            • 2017-03-09
                            • 1970-01-01
                            • 2018-07-22
                            • 2020-05-16
                            • 1970-01-01
                            • 2019-02-24
                            • 1970-01-01
                            • 1970-01-01
                            相关资源
                            最近更新 更多