如何让Lombok和AspectJ一起工作?

我刚刚在关于龙目岛的SO上发布了这个问题而没有生成我的getter / setter。 事实certificate它与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-plugin的依赖项,如下所示:

  org.projectlombok lombok 1.16.18 compile  

例如:

   org.codehaus.mojo aspectj-maven-plugin 1.8   org.aspectj aspectjrt ${aspectj.version}   org.aspectj aspectjtools ${aspectj.version}   org.projectlombok lombok 1.16.18 compile    ${java.version} ${java.version} ${java.version} ${project.build.sourceEncoding} true true true true    compile  compile test-compile     org.springframework spring-aspects