我的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。
我有一个类似的问题,通过改变pom.xml文件中lobak依赖的范围来解决。
最初的范围是“提供”,我相信我看到了你描述的所有奇怪的行为。例如,上下文相关的代码完成下拉包括getter和setter方法。当我从下拉菜单中选择一个getter方法时,该方法被正确地插入到源中。插入getter方法后,STS将方法调用标记为编译错误,因为它认为该方法不存在。
从lombok依赖中删除“提供”范围后,STS正常工作并且可以将getter / setter方法添加到代码中,可以编译/打包和执行代码。 getter / setter方法的执行起作用。
我添加-Xbootclasspath/a:lombok.jar
像naga1990 mentioned,但它仍然没有解决问题。用-clean
开始STS后,它确实有效。
@Karthik R,感谢您的帖子。以下帮助我解决了这个问题
在我的情况下,Xbootclasspath丢失,当我添加它工作
-Xbootclasspath/a:PATH_To_lambok.jar
尝试关闭项目,再次打开并检查。它对我有用。
我解决了它如下... 1.下载了lombok的UI Swing应用程序...即lombok.jar 2.启动它并手动输入sts的路径直到sts.exe,即包含sts.exe的完整文件夹3.点击更新/安装4.在完成上述3个步骤时,确保sts根本没有运行。 5.启动sts 6.清理构建项目。
这个如果用于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.再次构建它。