Scala程序编译失败:依赖未找到(附Flink/Scala/sbt环境信息)
解决Flink依赖未找到的编译问题
从你的错误日志和配置来看,核心问题是sbt项目默认使用的Scala版本与你本地安装的、Flink 1.9.1支持的版本不匹配,导致sbt去拉取不存在的依赖包。
问题分析
你本地安装的是Scala 2.10.6,但sbt 1.3.7默认会使用Scala 2.13.x版本构建项目。而sbt中的%%符号会自动给依赖的artifactId追加当前项目的Scala版本后缀——所以你的配置里"org.apache.flink" %% "flink-scala"会被解析成org.apache.flink:flink-scala_2.13:1.9.1,但Flink 1.9.1根本没有提供Scala 2.13版本的包,maven仓库自然找不到,从而抛出依赖未找到的错误。
具体解决方案
修改你的build.sbt,做以下两处调整:
- 显式指定项目使用的Scala版本,和你本地安装的2.10.6保持一致;
- 确保依赖被添加到项目的依赖列表中(如果之前没做的话)
修改后的完整build.sbt内容如下:
val flinkVersion = "1.9.1" // 指定项目使用的Scala版本为2.10.6 scalaVersion := "2.10.6" val flinkDependencies = Seq( "org.apache.flink" %% "flink-scala" % flinkVersion % "provided", "org.apache.flink" %% "flink-streaming-scala" % flinkVersion % "provided" ) // 将定义的依赖添加到项目依赖中 libraryDependencies ++= flinkDependencies
验证操作
执行以下命令清理之前的缓存并重新编译:
sbt clean compile
这样sbt就会拉取对应Scala 2.10版本的Flink依赖包,编译应该就能正常通过了。
内容的提问来源于stack exchange,提问作者Sarma
相关产品推荐
相关产品推荐

