Lombok和STS问题 - 方法未定义

Kar*_*k R 9 eclipse lombok spring-tool-suite eclipse-luna

我的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
Run Code Online (Sandbox Code Playgroud)

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.

Intelli J似乎没有这个问题,因为其他开发人员可以使用该库.

我的pom也有以下条目:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.4</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

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

Ran*_*rer 6

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

  1. 转到Lombok 页面并下载并双击 jar 并安装在您的 IDE 中。
  2. 之后,打开.ini文件,看看它是否有javaagentXbootclasspath变量。

在我的情况下,Xbootclasspath丢失了,当我添加它时,它起作用了。


-Xbootclasspath/a:PATH_To_lambok.jar
Run Code Online (Sandbox Code Playgroud)


小智 5

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

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

从Lombok依赖关系中删除“提供的”范围后,STS可以正常工作,并且可以将getter / setter方法添加到代码中,然后可以对代码进行编译/打包和执行。执行getter / setter方法有效。


小智 5

我说-Xbootclasspath/a:lombok.jar喜欢提到naga1990,但它仍然没有解决问题。用-clean它启动 STS 后确实有效。