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

SBT依赖无法从Git仓库解析问题及最优方案咨询

问题原因分析

首先,你遇到的依赖未解析错误,核心原因是**ProjectRef的第二个参数填错了**。

ProjectRef的第二个参数需要的是目标仓库里具体项目的模块ID,而不是仓库的名称。咱们看你引用的两个仓库:

  • datapackage-java仓库里的项目ID其实是datapackage(查看它的build.sbt,里面定义的是lazy val datapackage = (project in file("."))...)
  • tableschema-java仓库里的项目ID是tableschema

你之前填的是仓库名datapackage-java和tableschema-java,SBT找不到对应模块,自然会抛出“not found”的错误。

最优解决方案

根据你的需求(不想打包Jar、直接依赖GitHub上的SBT项目),这里提供两种靠谱的方式:

方式一:修正ProjectRef的参数

直接把ProjectRef的第二个参数改成正确的模块ID就行,修改后的build.sbt配置如下:

// 修正模块ID为仓库内的项目ID
lazy val datapackage = ProjectRef(uri("https://github.com/frictionlessdata/datapackage-java.git"), "datapackage")
lazy val tableschema = ProjectRef(uri("https://github.com/frictionlessdata/tableschema-java.git"), "tableschema")

lazy val root = (project in file(".")).enablePlugins(PlayJava)
  .dependsOn(datapackage)
  .dependsOn(tableschema)

// 其他常规依赖
libraryDependencies += "org.apache.commons" % "commons-lang3" % "3.6"
// ...

这样SBT就能正确识别并拉取对应模块的代码了。

方式二:使用sbt-git-dependencies插件(更简洁)

如果觉得ProjectRef写起来麻烦,可以用专门的Git依赖插件,它能让你像写常规依赖一样引用GitHub上的SBT项目:

  1. 先在project/plugins.sbt里添加插件:
addSbtPlugin("com.codecommit" % "sbt-git-dependencies" % "1.0.2") // 建议使用最新版本
  1. 然后在build.sbt里直接添加依赖:
lazy val root = (project in file(".")).enablePlugins(PlayJava)
  .settings(
    libraryDependencies ++= Seq(
      "org.apache.commons" % "commons-lang3" % "3.6",
      // 引用GitHub上的项目,版本号对应仓库里的定义
      "io.frictionlessdata" %% "datapackage" % "0.1-SNAPSHOT" from git("https://github.com/frictionlessdata/datapackage-java.git"),
      "io.frictionlessdata" %% "tableschema" % "0.1-SNAPSHOT" from git("https://github.com/frictionlessdata/tableschema-java.git")
    )
  )

这种方式更接近你平时用的libraryDependencies写法,维护起来更顺手。

补充说明

为什么之前常规的libraryDependencies能成功?因为那些依赖是发布到Maven/SBT公共仓库的,SBT可以直接从仓库拉取Jar包;而你现在引用的项目没上传到公共仓库,所以需要用Git相关的依赖方式来直接拉取源码构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:15:58