发生环境

Mac IDEA2022.1 和 Mac IDEA2023.1

笔者只是在这两个版本的的IDEA发现过该问题,但是idea自行内置Aspect插件从2021.2版本就开始。2021.2 ~ 2022.1 之间的版本有无问题没有试过。

具体表现

在使用aspectj插件时,详细配置: ajc + delegate javac + post wave,可能会发生如下的错误

image.png

image.png

image.png

看报错应该就是用了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)

image.png

官方说要2023.1.1修了这个bug,但目前这个版本还没发布

解决办法

  1. 版本回退,退回到2021.1.3,这是idea内置Aspect插件之前的最后一个版本,这之前需要下载Aspectj Support插件去支持ajc,在以前的版本这个插件工作良好。笔者采用的就是这个办法
  2. 等待官方发布新版本 2023.1.1,这之前要用aspectj很麻烦,介绍一个利用maven代理编译也能解决这个问题。但是不推荐,速度很慢。勾选下图的选项就行了

image.png

有些时候也可以利用缓存的方式取巧绕过ajc直接编译,又能进行织入,还不用每次都用maven编译那么久,但还是不推荐。


growing
0 声望0 粉丝