解决IDEA编译报错:
这是一个在新版本IDEA中较为常见的问题,今天就来详细解析其原因及解决方法。
使用mapstruct 启动的时候总是出现这个问题
报错信息详情
当出现该错误时,完整的报错信息如下:
D:\F\WorkSpace\ZJ-Work\temp\2025-1-29\bomis\RuoYi-Vue-master\bomis\src\main\java\com\ruoyi\bomis\liteflow\entity\structmapper\BoVerificationStructMapper.java:10:8
java: No implementation was created for BoVerificationStructMapper due to having a problem in the erroneous element java.util.ArrayList. Hint: this often means that some other annotation processor was supposed to process the erroneous element. You can also enable MapStruct verbose mode by setting -Amapstruct.verbose=true as a compilation argument.
错误出现的原因
经过排查发现,这个错误的根源在于新版本IDEA所使用的Java编译器与Lombok存在兼容性问题。简单来说,就是新版本IDEA的编译器,Lombok无法正常工作,而我们需要使用javac编译器才能避免这个问题。
解决方法
要解决这个问题,我们需要在IDEA编译器中禁用新版的编译器,具体操作如下:
- 打开IDEA的设置界面,进入
Preferences
- 依次展开
Build, Execution, Deployment
->Compiler
- 在
Shared build process VM options
一栏中加入以下配置:
-Djps.track.ap.dependencies=false
- 点击
Apply
和OK
保存设置,然后重新编译项目
操作示意图
在编译器设置位置添加上述配置的界面如下:
Preferences -> Build, Execution, Deployment -> Compiler,在Shared build process VM options处填入
-Djps.track.ap.dependencies=false
通过以上步骤,就能解决因IDEA新版本编译器与Lombok不兼容导致的AdminUserConverter无法创建实现的问题。如果在操作过程中遇到其他问题,可以尝试重启IDEA后再进行编译。