我的STS版本为3.6.3.SR1,它基于Eclipse Luna 4.4.1。
我做了以下步骤:
1)下载并运行lombak runnable 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的绝对位置打开STS
4)我验证了用@Data和其他lombak注释注释的java类的大纲。我可以看到生成的getter和setter。甚至自动辅助也会显示该方法。
5)我做了Maven - >更新项目,甚至做了一个Project Clean
6)确认lombak也是从关于帮助的STS安装的。
即使在上述所有活动之后,仍有许多编译器问题在所有@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>
我该如何解决?
P.S:我在STS之上下载了Eclipse Kepler,以启用JBoss Fuse Tooling。
答案 0 :(得分:4)
我有一个类似的问题,通过改变pom.xml文件中lobak依赖的范围来解决。
最初范围是“提供”,我相信我看到了你描述的所有奇怪的行为。例如,上下文相关的代码完成下拉包括getter和setter方法。当我从下拉菜单中选择一个getter方法时,该方法被正确地插入到源中。插入getter方法后,STS将方法调用标记为编译错误,因为它认为该方法不存在。
从lombok依赖项中删除“提供”范围后,STS正常工作,并且可以将getter / setter方法添加到代码中,可以编译/打包和执行代码。 getter / setter方法的执行起作用。
答案 1 :(得分:3)
@Karthik R,谢谢你的帖子。以下帮助我解决了这个问题
在我的情况下, Xbootclasspath 缺失了,当我添加它有效时
-Xbootclasspath/a:PATH_To_lambok.jar
答案 2 :(得分:3)
我添加了-Xbootclasspath/a:lombok.jar
naga1990 mentioned,但它仍然没有解决问题。使用-clean
启动STS后,它确实有效。
答案 3 :(得分:1)
如果你已经尝试过其他方法,但它仍然无效,你可以试试这个:
如果您的项目是基于Maven的项目,则STS将其配置为 AspectJ功能,这将与 Lombok 冲突。
要解决此问题,请通过右键单击项目 - &gt;删除Aspects功能。 AspectJ工具 - &gt;删除AspectJ功能。希望这会奏效。
答案 4 :(得分:0)
我如下解决了... 1.下载了lombok的UI Swing应用程序...即lombok.jar 2.启动它并手动输入sts的路径,直到sts.exe,即包含sts.exe的完整文件夹 3.单击更新/安装 4.在执行以上所有3个步骤时,请确保sts根本没有运行。 5.启动STS 6.清理构建项目。
答案 5 :(得分:0)
如果是日食/ STS,则为 1.关闭您的SDK 2.下载龙目岛罐子 3.双击它或使用java.exe运行它 4.确保以下行应添加到.ini文件中 -javaagent:\ lombok.jar 5.如果缺少,请添加以下行 -Xbootclasspath / \ lombok.jar 6.打开您的SDK。转到“帮助”->“关于”。您应该在下面看到 “已安装了Lombok v1.18.6“ Enret Ferret”。https://projectlombok.org/” 7.清理您的项目。 8.重新构建。
答案 6 :(得分:0)
添加javaagent和Xbootclasspath值之后。完全关闭STS,然后重新开始。不要尝试重新启动,它将无法正常工作
答案 7 :(得分:0)
我遇到了同样的问题,事实证明,只有当我从之前创建的桌面快捷方式(安装loombok之前)启动STS时,lombok才起作用。我删除了快捷方式,然后再次创建它,而lombok正常运行。如果您使用快捷方式运行sts,请尝试此解决方案。