在我基于 Maven 的项目中,我使用 Lombok 来保存一些样板代码。此外,我正在使用一个 Spring 数据库,它使用 AspectJ 来完成任务。遗憾的是,Lombok 和 AspectJ 在开箱即用时不能很好地协同工作,因为 AspectJ 编译器会重新编译 Java 文件。所以 Lombok 实现的 Getter 和 Setter 丢失了。
我决定使用 Lombok Maven 插件来 delombok 我的代码。然后将此代码传递给 AspectJ。这是基本流程:
Sources in /src/main/java or /src/test/java
=> [Delombok]
=> Delomboked sources in /target/generated-sources/delombok or /target/generated-test-sources/delombok
=> [AspectJ]
=> Compiled results in /target/classes or /target/test-classes
但是,这种方法的一个缺点是:我似乎失去了使用 IntelliJ 的调试支持。在 /src/main/java 或 /target/generated-sources/delombok Java 文件中设置的断点永远不会被命中。我使用 IntelliJ Maven 插件运行项目,选择一个生命周期项目(例如“测试”),调试挂钩。可悲的是,断点永远不会被击中。
可以做些什么来获得调试支持?