Sbt 1.3.0+版本未用Coursier缓存仍访问.ivy2本地仓库问题
解决sbt依赖解析异常(未使用Coursier+Artifactory未授权)
核心问题排查与修复步骤
1. 强制启用Coursier,排除配置禁用
- 检查项目配置文件:确认
build.sbt、project/plugins.sbt或project/build.properties中没有useCoursier := false的配置,若有则删除。 - 全局配置检查:查看
~/.sbt/1.0/global.sbt或~/.sbt/global.sbt,移除任何useCoursier in Global := false的全局禁用项。 - 命令行强制验证:直接执行
sbt -Dsbt.coursier=true load,绕开IDE配置,确认纯命令行环境下是否切换为Coursier解析。
2. 修复Artifactory仓库授权问题
未授权是依赖拉取失败的核心原因,可能导致sbt fallback到Ivy解析:
- 配置仓库凭证:在
~/.sbt/.credentials中添加正确的认证信息:realm=Artifactory Realm host=artifactory.company.com user=你的用户名 password=你的API密钥/密码 - 关联仓库与凭证:编辑
~/.sbt/repositories,确保公司仓库配置后标注credentials:[repositories] local company-artifactory: https://artifactory.company.com/maven-releases/, credentials - 项目级显式引用凭证:在
build.sbt中添加:credentials += Credentials(Path.userHome / ".sbt" / ".credentials")
3. IntelliJ IDEA配置重置
- 切换sbt执行模式:进入
File > Settings > Build, Execution, Deployment > Build Tools > sbt,勾选Use sbt shell for build and import,应用后重启IDE。 - 验证VM参数生效:在sbt shell中执行
show javaOptions,确认输出包含-Dsbt.coursier.home=/Users/userId/Library/Caches/Coursier等自定义参数,若未生效则直接在命令行指定参数运行。
4. 清理缓存并重新拉取
- 清理Coursier缓存:执行
rm -rf /Users/userId/Library/Caches/Coursier,强制重新下载依赖。 - 移除本地Ivy缓存干扰:删除
/Users/userName/.ivy2/local/com.companyXX.projectA.maven目录,避免sbt优先读取本地无效依赖。
内容的提问来源于stack exchange,提问作者LizzyMM
相关产品推荐
相关产品推荐

