SBT与Bloop无法下载依赖checksum校验不匹配问题求助
故障根因
报错的核心异常是依赖缓存路径中存在null无效字段,SBT默认使用的Coursier依赖解析器的缓存根目录配置错误,导致下载的所有依赖元数据被存储到无效路径,文件校验和完全不匹配,无法通过依赖验证。
解决步骤
- 先删除损坏的缓存文件:删除项目目录下自动生成的
null文件夹,同时删除用户目录下的.ivy2、.coursier、.sbt三个全局缓存/配置目录,避免旧损坏数据干扰。 - 检查系统环境变量,删除所有和SBT、Coursier相关的错误配置项,包括
COURSIER_CACHE、COURSIER_DIR、SBT_OPTS等,修改完成后重启终端生效。 - 国内网络环境可额外配置国内镜像源加速下载:在用户目录的
.sbt文件夹下新建名为repositories的无后缀文件,写入以下配置:
[repositories] local aliyun: https://maven.aliyun.com/repository/public/ typesafe: https://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly sonatype-oss-releases maven-central sonatype-oss-snapshots
- 删除项目
project目录下自动生成的metals、bloop相关临时配置文件,回到项目根目录执行sbt clean compile重新构建即可。 - 若使用VSCode的Metals插件开发,操作完成后重启VSCode重新导入项目,避免插件缓存旧配置。
内容的提问来源于stack exchange,提问作者Lucasino
相关产品推荐
相关产品推荐

