IntelliJ提示org.scalatest.compatible.Assertion类路径缺失但sbt编译正常如何修复
问题根因
这个报错本质是IntelliJ IDEA的依赖同步机制和sbt不匹配导致的,你提供的build.sbt中scalactic、scalatest相关依赖版本完全一致,不存在版本冲突,sbt原生编译正常也验证了依赖本身没有问题,问题出在IDEA的本地缓存或者构建配置上。
修复步骤
- 同步sbt依赖
打开IDEA右侧侧边栏的sbt面板,点击顶部的刷新图标,等待IDEA完成依赖同步后重新构建项目。 - 清理IDEA缓存重启
点击顶部菜单栏File -> Invalidate Caches...,勾选「Clear file system cache and local history」后点击「Invalidate and Restart」,等待IDEA重启完成自动重新索引项目。 - 切换为sbt shell执行构建
进入File -> Settings -> Build, Execution, Deployment -> Build Tools -> sbt设置页,勾选「Use sbt shell for build and import」,保存配置后重新构建项目。该配置会让IDEA直接调用本地sbt执行构建,完全对齐sbt原生的编译行为,避免IDEA内置构建器的兼容性问题。 - 验证依赖作用域
打开File -> Project Structure -> Modules -> 你的根模块 -> Dependencies,检查scalatest、scalatest-funsuite两个依赖的作用域是否为「Test」,如果是Provided或其他错误作用域需要修改为Test。 - 全量重编译
先在终端执行sbt clean清理原有编译产物,再在IDEA中点击Build -> Rebuild Project执行全量编译。
以上步骤执行完成后即可解决该报错。
内容的提问来源于stack exchange,提问作者gefei
相关产品推荐
相关产品推荐

