我只是试图将一个基于maven的项目发送到另一台计算机和HORROR,到处都是红色标记!!
但是mvn clean install建设得很好.
很快我注意到,龙目不产生getter和setter我的班,但是@Getter和@Setter通过Eclipse中被正确识别.
两台计算机使用相同的Maven版本(3.0.4)但使用不同的JDK(1.6_23和1.6_33).他们都使用Eclipse Indigo 32位.
我用Maven配置eclipse Luna中的lombok.正确添加注释,但不生成getter和setter.
的eclipse.ini
`-vm E:\Program Files\Java\jdk1.7.0_60\bin`
`-vmargs`
`-Dosgi.requiredJavaVersion=1.7`
`-javaagent:F:\Tools\Java Lib\Lombok\lombok.jar`
`-Xbootclasspath/a:F:\Tools\Java Lib\Lombok\lombok.jar`
`-Xms40m`
`-Xmx512m`
Run Code Online (Sandbox Code Playgroud) 我最近升级到了新的Eclipse版本(Oxygen).我从网站上下载了lombok.jar并安装了它.这是eclipse.ini安装后的样子:
-startup
plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar
--launcher.library
C:\Users\xxx\.p2\pool\plugins\org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.500.v20170531-1133
-product
org.eclipse.epp.package.jee.product
-showsplash
org.eclipse.epp.package.common
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Dosgi.instance.area.default=@user.home/eclipse-workspace
-XX:+UseG1GC
-XX:+UseStringDeduplication
-Dosgi.requiredJavaVersion=1.8
-Xms256m
-Xmx1024m
-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/
-javaagent:lombok.jar
Run Code Online (Sandbox Code Playgroud)
我可以使用Lombok,如下所示:
但是当在其他类中使用getter/setter和/或构造函数时,我得到了这个错误:
这些是我的Eclipse和Lombok版本:
Eclipse Java EE IDE for Web Developers.
Version: Oxygen Release (4.7.0)
Build id: 20170620-1800
Lombok v1.16.18 "Dancing Elephant" is installed. https://projectlombok.org/
Run Code Online (Sandbox Code Playgroud)
谁知道我怎么解决它?
我下载了lombok.jar(lombok-1.16.14.jar)把它放到我的下载中.然后我点击了这个jar,执行正确识别了MacOS上的Eclipse实例,然后我选择了我想要的实例.Lombok也在pom.xml org.projectlombok lombok 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 {
...
Run Code Online (Sandbox Code Playgroud)
错误:
The method getRole() is undefined for the type User
Run Code Online (Sandbox Code Playgroud) 我在Eclipse中有lombok插件并在Eclipse编译器中启用了Eclipse中的注释处理,但是当我使用@ Slf4j注释时它仍然无法识别日志语句.
我们必须进行任何其他设置吗?
我正在尝试使用lombok getter和setter注释.据我所知,带注释的代码是在运行时生成的而不是编译时间,那么如何利用自动生成的getter和setter来编写代码呢?
例如,我有一个这样的类
@lombok.Getters
@lombok.Setters
public class MyLombokTesting {
private String userName;
}
Run Code Online (Sandbox Code Playgroud)
但是如果在编写代码时没有生成这些注释会有什么用?
现在我想做这样的事情
MyLombokTesting myLombokTesting = new MyLombokTesting();
String username = myLombokTesting.getUserName();
or myLombokTesting.setUserName("some username");
Run Code Online (Sandbox Code Playgroud)
但我不能做任何这些,因为在编写代码时没有为eclipse生成的setter和getter.
显然我可以有一个参数构造函数来设置用户名但是getter呢?
我的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.
Eclipse 抛出错误消息
“空白的最终字段可能尚未初始化”
即使我有一套@RequiredArgsConstructor。
@Component
@RequiredArgsConstructor
class DataWriter implements ApplicationRunner{
private final AccountRepository accountRepo;
@Override
public void run(ApplicationArguments args) throws Exception {
}
}
Run Code Online (Sandbox Code Playgroud)
编译不应该抛出错误,因为 Lombok 应该自动创建构造函数
我下载了Eclipse Luna并导入了一个稳定的现有Maven项目,该项目使用了@Getter和@Setter lombok注释.注释被识别,但Eclipse标记对getter或setter方法的任何调用,给出错误消息
对于类型Foo,方法getSomething()未定义
与其他stackoverflow问题不同,像这样,我遇到了这个问题,尽管我已经更新了我的eclipse.ini,并将lombok.jar添加到与我的eclipse.exe和eclipse.ini文件相同的目录中.eclipse.ini的变化虽然没有区别,但我到处都有错误的市场!
的eclipse.ini
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20140603-1326
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vm
C:\Program Files\Java\jdk1.7.0_51\bin\javaw.exe
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms40m
-Xmx512m
-javaagent:lombok.jar
-Xbootclasspath/a:lombok.jar
Run Code Online (Sandbox Code Playgroud)
我做了一个项目>干净,我已经尝试使用我的lombok jar的完整路径,我已经退出并重新启动Eclipse都无济于事.
我在这里错过了什么?谢谢你的帮助!!!