You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sbt无法连接私有Artifactory仓库,凭证查找失败求助

解决sbt无法找到Artifactory凭证的问题

你遇到的[error] Unable to find credentials for [Artifactory Realm @ artifactory.mydomain.com]报错,本质是sbt没有找到对应Artifactory Realm的身份凭证配置——虽然你已经设置了~/.sbt/repositories,但凭证信息需要单独配置,不能直接写在仓库文件里。这里给你几个必试的解决步骤:

1. 创建正确格式的凭证文件

首先在用户主目录下创建(或修改)凭证文件,路径可以是~/.sbt/credentials或者~/.ivy2/.credentials(sbt和Ivy都会识别这两个位置)。文件内容必须严格匹配报错里的Realm和Host,示例如下:

realm=Artifactory Realm
host=artifactory.mydomain.com
user=你的Artifactory用户名
password=你的Artifactory密码/API密钥

⚠️ 注意:realm字段必须和报错里的完全一致(包括大小写),这里报错里的Realm是Artifactory Realm,所以直接照搬即可;如果用API密钥代替密码,要确保你的Artifactory账号已经启用了API密钥访问。

2. 让sbt加载这个凭证文件

有两种方式可以让sbt读取到凭证:

  • 方式一:在repositories文件中指定
    修改你现有的~/.sbt/repositories,在每个私有仓库的条目末尾加上凭证路径配置,示例:
    [repositories]
    local
    my-ivy-proxy-releases: https://artifactory.mydomain.com/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext], credentials "${user.home}/.sbt/credentials"
    my-maven-proxy-releases: https://artifactory.mydomain.com/maven-releases/, credentials "${user.home}/.sbt/credentials"
    
  • 方式二:全局sbt配置
    在~/.sbt/1.0/global.sbt(全局生效)或者项目根目录的build.sbt(仅当前项目生效)中添加以下代码:
    credentials += Credentials(Path.userHome / ".sbt" / "credentials")
    

3. 验证凭证文件的权限

为了安全,sbt会拒绝读取权限过高的凭证文件,所以确保你的凭证文件权限是600(仅所有者可读写):

chmod 600 ~/.sbt/credentials

4. 额外排查步骤

如果以上步骤还没解决问题,可以试试:

  • 清理sbt缓存后重新拉取:sbt clean cleanCache
  • 检查仓库URL是否存在拼写错误,比如路径末尾的斜杠、域名拼写等
  • 确认你的用户名/密码/API密钥确实能正常登录Artifactory网页端

内容的提问来源于stack exchange,提问作者Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:39:22