Lombok和STS问题 - 方法未定义

问题描述 投票:7回答:7

我的STS版本为3.6.3.SR1,它基于Eclipse Luna 4.4.1。

我做了以下步骤:

1)下载并运行lombak可运行的jar并给出了我的STS的路径。 2)我验证了vmargs的条目,但是缺少Xbootclasspath并将其添加到有,

-vmargs
-Dosgi.requiredJavaVersion=1.6
-XX:MaxPermSize=256m
-Dorg.eclipse.swt.browser.IEVersion=10001
-Xms512m
-Xmx1024m
-javaagent:C:\tools\Lombok\lombok.jar
-Xbootclasspath/a:C:\tools\Lombok\lombok.jar

3)我有退出并从快捷方式以及STS.exe的absoulte位置打开STS

4)我验证了用@Data和其他lombak注释注释的java类的大纲。我可以看到生成的getter和setter。甚至自动辅助也会显示该方法。

5)我做了Maven - > Update Project,甚至做了一个Project Clean

6)确认已从关于帮助中的STS安装了lombak。

即使在上述所有活动之后,仍有许多编译器问题在所有@Data或@Getter或@Setter注释上抱怨未定义的方法getXXX()和setXXX()。

Maven构建运行成功,运行时行为很好,因为编译的类似乎有getter和setter。

Intellij似乎对此没有任何问题,因为其他开发人员可以使用该库。

我的pom也有以下条目:

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

我该如何解决?

P.S:我在STS之上下载了Eclipse Kepler,以启用JBoss Fuse Tooling。

eclipse spring-tool-suite eclipse-luna lombok
7个回答
4
投票

我有一个类似的问题,通过改变pom.xml文件中lobak依赖的范围来解决。

最初的范围是“提供”,我相信我看到了你描述的所有奇怪的行为。例如,上下文相关的代码完成下拉包括getter和setter方法。当我从下拉菜单中选择一个getter方法时,该方法被正确地插入到源中。插入getter方法后,STS将方法调用标记为编译错误,因为它认为该方法不存在。

从lombok依赖中删除“提供”范围后,STS正常工作并且可以将getter / setter方法添加到代码中,可以编译/打包和执行代码。 getter / setter方法的执行起作用。


3
投票

我添加-Xbootclasspath/a:lombok.jarnaga1990 mentioned,但它仍然没有解决问题。用-clean开始STS后,它确实有效。


3
投票

@Karthik R,感谢您的帖子。以下帮助我解决了这个问题

  1. 转到https://projectlombok.org/并下载并双击该jar并在IDE中安装
  2. 之后打开.ini文件,看看它是否有javaagent和Xbootclasspath变量。

在我的情况下,Xbootclasspath丢失,当我添加它工作


-Xbootclasspath/a:PATH_To_lambok.jar

1
投票

如果你已经尝试过其他方法,但它仍然不起作用,你可以试试这个:

如果您的项目是基于Maven的项目,则STS将其配置为AspectJ Capability,这将与Lombok冲突。

要解决此问题,请通过右键单击项目 - > AspectJ工具 - >删除AspectJ功能来删除Aspects功能。希望这会奏效。

enter image description here


1
投票

尝试关闭项目,再次打开并检查。它对我有用。


0
投票

我解决了它如下... 1.下载了lombok的UI Swing应用程序...即lombok.jar 2.启动它并手动输入sts的路径直到sts.exe,即包含sts.exe的完整文件夹3.点击更新/安装4.在完成上述3个步骤时,确保sts根本没有运行。 5.启动sts 6.清理构建项目。


0
投票

这个如果用于eclipse / STS 1.关闭你的sdk 2.下载lombok jar 3.双击它或用java.exe运行它4.确保下面的行应该添加到.ini文件-javaagent:\ lombok.jar 5。如果遗漏,请添加以下行添加自己-Xbootclasspath / \ lombok.jar 6.打开你的sdk。转到帮助 - >关于。您应该看到以下行“Lombok v1.18.6”Envious Ferret“已安装.https://projectlombok.org/”7。清理您的项目。 8.再次构建它。

© www.soinside.com 2019 - 2024. All rights reserved.