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

SBT使用内部Artifactory解析Ivy依赖异常求助

解决SBT将内部Artifactory中Ivy依赖当作Maven依赖解析的问题

问题原因

原repo.scala-sbt.org是Ivy格式的仓库,依赖采用Ivy布局存储(比如sbt-twirl的路径包含scala_2.12/sbt_1.0/1.5.1/ivys/ivy.xml)。但你当前的~/.sbt/repositories配置中,仅指定了内部仓库的URL,没有明确标记仓库类型,SBT默认会按Maven仓库的规则解析依赖——Maven布局会把Scala和SBT版本合并到artifactId中(比如sbt-twirl_2.12_1.0),并查找.pom文件,这就和你复制到内部Artifactory的Ivy路径不匹配,导致404错误。

解决方法

需要在~/.sbt/repositories中明确指定sbt-releases仓库为Ivy类型,让SBT使用Ivy布局规则解析依赖。修改后的配置如下:

[repositories]
maven-central: http://internal-repo-url/mvn_repo_path,allowInsecureProtocol
sbt-releases: http://internal-repo-url/sbt_repo_path,allowInsecureProtocol,ivy

或者更明确指定Ivy布局:

[repositories]
maven-central: http://internal-repo-url/mvn_repo_path,allowInsecureProtocol
sbt-releases: ivy:http://internal-repo-url/sbt_repo_path,allowInsecureProtocol,layout=ivy

验证步骤

  1. 保存修改后的~/.sbt/repositories文件
  2. 清理SBT本地缓存(删除~/.ivy2/cache或~/.sbt/boot目录)
  3. 重新运行sbt compile,此时SBT会按照Ivy路径规则查找依赖,匹配你在内部Artifactory中保留的原路径结构,避免404错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 07:42:37