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

添加依赖后执行sbt run报错,提示spark-streaming 3.1.2依赖未找到

错误原因
  • Spark 3.1.2 无 Scala 3 适配版本:Spark 3.1.2 官方仅发布了适配 Scala 2.12、Scala 2.13 的构建包,未提供 Scala 3 对应的依赖版本,因此无法从公共仓库拉取对应组件。
  • 依赖声明格式不符合 sbt 规则:Scala 生态的依赖通常会携带对应 Scala 版本的后缀,sbt 中需要使用 %% 分隔组织名和依赖名,才能自动拼接当前项目的 Scala 版本作为依赖后缀。当前配置使用 % 声明 Spark 依赖,会直接查找无 Scala 版本后缀的依赖包,而这类包在公共仓库中不存在,和报错信息中拉取无后缀的 spark-streaming:3.1.2 失败的表现一致。
解决方案

可根据实际需求任选以下一种方案修改配置:

方案1:保留 Spark 3.1.2 版本,降级项目 Scala 版本

将项目 Scala 版本切换为 Spark 3.1.2 支持的 2.12.x 或 2.13.x 版本,同时修正依赖声明格式,修改后的 build.sbt 参考如下:

val scala2Version = "2.12.15"

lazy val root = project
  .in(file("."))
  .settings(
    name := "scala3-simple",
    version := "0.1.0",

    scalaVersion := scala2Version,

    libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % "test",
    libraryDependencies += "org.apache.spark" %% "spark-streaming" % "3.1.2",
    libraryDependencies += "org.apache.spark" %% "spark-core" % "3.1.2"
  )

修改完成后重新执行 sbt run 即可正常拉取依赖。

方案2:保留 Scala 3 版本,升级 Spark 版本

Spark 从 3.3.0 版本开始提供 Scala 3 适配版本,将 Spark 依赖升级到 3.3.0 及以上版本,同时修正依赖声明格式,修改后的 build.sbt 参考如下:

val scala3Version = "3.0.2"

lazy val root = project
  .in(file("."))
  .settings(
    name := "scala3-simple",
    version := "0.1.0",

    scalaVersion := scala3Version,

    libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % "test",
    libraryDependencies += "org.apache.spark" %% "spark-streaming" % "3.3.0",
    libraryDependencies += "org.apache.spark" %% "spark-core" % "3.3.0"
  )

修改完成后重新执行 sbt run 即可正常拉取依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:27:02