Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使Lombok和AspectJ协同工作?_Java_Aspectj_Lombok - Fatal编程技术网

Java 如何使Lombok和AspectJ协同工作?

Java 如何使Lombok和AspectJ协同工作?,java,aspectj,lombok,Java,Aspectj,Lombok,我刚刚发布了关于Lombok没有生成getter/setter的帖子。事实证明,它与AspectJ相冲突。如果禁用AspectJ,则会适当地生成getter/setter 我的猜测是ajc编译器无法识别lombok Lombok和AspectJ是互斥的吗?这两种技术一起工作吗 根据AspectJ维护人员Andy Clement的说法,目前的答案是,由于AspectJ编译器基础设施中包含并重命名了ECJ(Eclipse Compiler for Java)包,因此存在一些问题 有关更多信息,Eri

我刚刚发布了关于Lombok没有生成getter/setter的帖子。事实证明,它与AspectJ相冲突。如果禁用AspectJ,则会适当地生成getter/setter

我的猜测是ajc编译器无法识别lombok


Lombok和AspectJ是互斥的吗?这两种技术一起工作吗

根据AspectJ维护人员Andy Clement的说法,目前的答案是,由于AspectJ编译器基础设施中包含并重命名了ECJ(Eclipse Compiler for Java)包,因此存在一些问题

有关更多信息,Eric B.和A.Clement正在AspectJ用户邮件列表上进行讨论:


也许我们可以用这个答案来解决这个问题,并在问题解决后报告。

将Project Lombok作为依赖项添加到aspectj maven插件中,如下所示:


org.projectlombok
龙目
1.16.18
编译
例如:


org.codehaus.mojo
aspectj maven插件
1.8
org.aspectj
aspectjrt
${aspectj.version}
org.aspectj
aspectjtools
${aspectj.version}
org.projectlombok
龙目
1.16.18
编译
${java.version}
${java.version}
${java.version}
${project.build.sourceEncoding}
真的
真的
真的
真的
编译
编译
测试编译
org.springframework
春季方面

可能很有用。但是你应该更准确地描述你在做什么(Eclipse?Maven?随便什么?);这绝对是一个有用的建议,但对于更复杂的AJ项目(例如:ITD、成员注入、接口实现等),我不认为该解决方案会起作用。提出的想法要求javac在ajc之前运行,但是javac在使用注入成员/接口/etc的任何文件上都会失败,因此,ajc将不会使用任何字节码。至少,这是我的理论;我还没有尝试确定。当我在将aspectj依赖的库添加到项目中时遇到问题,而lombok面临类似的问题时,这就起到了帮助作用。你有有效的解决方案吗?我的答案有什么不清楚的地方?你读过邮件列表吗?很酷,是的,我读过。事实上,我已经问过@Eric B他是否得到了任何解决方案(问题和答案以及邮寄线索是在2014年)。@santhoshkumar对延迟回复表示抱歉;我没有看到通知/线程。我从来没有找到一个可行的解决方案,最终放弃了龙目岛,部分原因就是这个限制。我看到
@chent
发布了这个问题的解决方案(AspectJ支持对我来说更重要)。虽然从技术角度我不明白为什么这样做会奏效,但我很想在将来再试一次。我试过了,但对我来说不起作用。eclipse中没有任何更改,maven给出了来自AJC的错误:“您没有使用lombok支持的编译器”,也无法使用此选项重新创建修复程序。