发生环境
Mac IDEA2022.1 和 Mac IDEA2023.1
笔者只是在这两个版本的的IDEA发现过该问题,但是idea自行内置Aspect插件从2021.2版本就开始。2021.2 ~ 2022.1 之间的版本有无问题没有试过。
具体表现
在使用aspectj插件时,详细配置: ajc + delegate javac + post wave,可能会发生如下的错误
看报错应该就是用了idea环境的环境,而没有使用咱项目下的java环境 。因为代码里面用了大量的lombok,只有使用代理了javac,才能进行post-weave,项目才能正常编译,不然lombok生成的代码就会报错。
最终发现是idea的bug, issue链接:https://youtrack.jetbrains.com/issue/IDEA-307526/Ajc-compiler... (Ajc compiler disregards module JDK and uses boot runtime for IDE)
官方说要2023.1.1修了这个bug,但目前这个版本还没发布
解决办法
- 版本回退,退回到2021.1.3,这是idea内置Aspect插件之前的最后一个版本,这之前需要下载Aspectj Support插件去支持ajc,在以前的版本这个插件工作良好。笔者采用的就是这个办法
- 等待官方发布新版本 2023.1.1,这之前要用aspectj很麻烦,介绍一个利用maven代理编译也能解决这个问题。但是不推荐,速度很慢。勾选下图的选项就行了
有些时候也可以利用缓存的方式取巧绕过ajc直接编译,又能进行织入,还不用每次都用maven编译那么久,但还是不推荐。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。