由于找不到依赖项,编译scala程序失败

2w3kk1z5  于 2021-06-24  发布在  Flink
关注(0)|答案(2)|浏览(514)

我已经安装了flink、scala和sbt flink版本:1.9.1 scala版本:2.10.6 sbt版本:1.3.7
我在build.sbt中做了相关的更改。编译命令失败这里是相关信息。如有任何消息,我们将不胜感激

**版本信息

[osboxes@osboxes 本地]$scala-版本
scala代码运行程序版本2.10.6—版权所有2002-2013,lamp/epfl
[osboxes@osboxes local]$flink—版本
版本:1.9.1,提交id:4d56de8
[osboxes@osboxes readcsvfile]$sbt-版本
本项目sbt版本:1.3.7
sbt脚本版本:1.3.7

**build.sbt更改

val flinkVersion = "1.9.1"

val flinkDependencies = Seq(
  "org.apache.flink" %% "flink-scala" % flinkVersion % "provided",
  "org.apache.flink" %% "flink-streaming-scala" % flinkVersion % "provided")

**编译错误

sbt:readCsvfile> compile
[info] Updating 
[info] Resolved  dependencies
[warn] 
[warn]  Note: Unresolved dependencies path:
[error] stack trace is suppressed; run last update for the full output
[error] (update) sbt.librarymanagement.ResolveException: Error downloading org.apache.flink:flink-streaming-scala_2.13:1.9.1
[error]   Not found
[error]   Not found
[error]   not found: /home/osboxes/.ivy2/local/org.apache.flink/flink-streaming-scala_2.13/1.9.1/ivys/ivy.xml
[error]   not found: https://repo1.maven.org/maven2/org/apache/flink/flink-streaming-scala_2.13/1.9.1/flink-streaming-scala_2.13-1.9.1.pom
[error] Error downloading org.apache.flink:flink-scala_2.13:1.9.1
[error]   Not found
[error]   Not found
[error]   not found: /home/osboxes/.ivy2/local/org.apache.flink/flink-scala_2.13/1.9.1/ivys/ivy.xml
[error]   not found: https://repo1.maven.org/maven2/org/apache/flink/flink-scala_2.13/1.9.1/flink-scala_2.13-1.9.1.pom
[error] Total time: 4 s, completed Jan 30, 2020 3:59:12 PM
sbt:readCsvfile>
uqcuzwp8

uqcuzwp81#

关于sbt相关性问题,我想在这里提到的几点是:
请添加 scalaVersion := "2.12.11"build.sbt 像这样的文件,其中包括在您的sbt依赖项scala版本自动由于这个 %% .

name := "flink-streaming-demo"

scalaVersion := "2.12.11"

val flinkVersion = "1.10.0"

libraryDependencies += "org.apache.flink" %% "flink-scala" % flinkVersion % "provided"
libraryDependencies += "org.apache.flink" %% "flink-streaming-scala" % flinkVersion % "provided"

如果您想要特定于scala版本的sbt依赖关系,那么使用 % 这样地:

libraryDependencies += "org.apache.flink" % "flink-scala_2.12" % flinkVersion % "provided"
libraryDependencies += "org.apache.flink" % "flink-streaming-scala_2.12" % flinkVersion % "provided"

在最坏的情况下,如果所有这些都不工作,那么只需删除或重命名这些现有的 .sbt 以及 .ivy2 系统主目录中的隐藏文件夹,从maven central下载并刷新/构建sbt项目后,您的所有依赖项和插件都会在其中保存。
sbt依赖格式

libraryDependencies += groupID % artifactID % revision % configuration

的含义 % 以及
%% % :用于从您提供的字符串构造常青藤模块id的方法。 %% :当在groupid之后使用时,它会自动将项目的scala版本(如2.12)添加到工件名称的末尾。
注意:要获取更多详细信息,请单击此处。

s1ag04yj

s1ag04yj2#

总结一下你的评论,因为也许你很难知道你应该怎么做
一般来说,如果出现“未解决的依赖项”错误,请访问mvnrepository.com,搜索您的工件:
https://mvnrepository.com/artifact/org.apache.flink/flink-scala
这将告诉您(第二列)它支持哪些scala版本。在本例中,库可用于2.11.x和2.12.x。
因此,您必须使用与您的内部版本中的版本兼容的scala版本 build.sbt :

ThisBuild / scalaVersion := "2.12.10"

相关问题