macOS Big Sur更新后IntelliJ下Spark Scala项目构建报Mockito初始化异常
故障根因
该报错与本地Scala、Spark环境无关联,是macOS系统升级后,Mockito依赖的Byte Buddy组件的Java agent attach功能适配异常导致的,核心触发点为报错栈中的No compatible attachment provider is available。
解决方案
方案1:切换MockMaker实现(最快生效,无依赖修改)
大部分单元测试场景下不需要使用内联MockMaker,直接替换实现即可解决:
- 进入项目
src/test/resources目录,新建名为org.mockito.plugins.MockMaker的文件 - 文件中仅写入一行内容:
subclass - 重新执行项目构建即可
方案2:升级依赖版本(适配内联MockMaker场景)
如果你的测试逻辑需要mock final类、final方法,必须使用内联MockMaker,可升级依赖适配新系统:
- 将Mockito版本升级至3.9.0及以上
- 同步将Byte Buddy依赖版本升级至1.11.0及以上
- 刷新maven依赖后重新构建
方案3:修复JDK与IDEA权限配置
- 首先确认IDEA执行maven构建时使用的JDK为你指定的JDK1.8:打开IDEA设置 > 构建、执行、部署 > 构建工具 > Maven > 运行程序,检查
JRE选项是否选择了本地安装的JDK1.8,而非IDEA内置JRE或其他版本 - 给IDEA授予完整磁盘访问权限:打开 macOS系统设置 > 隐私与安全性 > 完整磁盘访问权限,勾选IntelliJ IDEA,重启IDEA后重试
内容的提问来源于stack exchange,提问作者palamuGuy
相关产品推荐
相关产品推荐

