Компиляция программы Scala не удалась из-за не найденных зависимостей - PullRequest
1 голос
/ 30 января 2020

Я установил Flink, Scala и sbt Flink Версия: 1.9.1 Scala Версия: 2.10.6 Sbt Версия: 1.3.7

Я внес соответствующие изменения в build.sbt. Сбой команды компиляции Вот соответствующая информация. Любая информация приветствуется

** Информация о версиях

[osboxes@osboxes local] $ scala -version

Scala code runner version 2.10.6 - Copyright 2002-2013, LAMP / EPFL

[osboxes@osboxes local] $ flink --version

Версия: 1.9.1, идентификатор фиксации: 4d56de8

[osboxes@osboxes readcsvfile] $ sbt -version

версия 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>

Ответы [ 2 ]

0 голосов
/ 08 мая 2020

Несколько замечаний, которые я хотел бы упомянуть здесь относительно проблем с зависимостями SBT:

  1. Пожалуйста, добавьте scalaVersion := "2.12.11" в build.sbt файл, подобный этому, который включает версию Scala в ваших зависимостях SBT автоматически из-за этого %%.
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 версию, указанную c 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
Значение % и %%
  • %: метод, используемый для создания идентификатора модуля плюща из предоставленных вами строк.
  • %%: при использовании после groupID, он автоматически добавляет Scala версию вашего проекта (например, _2.12) в конец имени артефакта.

ПРИМЕЧАНИЕ: Для получения более подробной информации нажмите здесь .

0 голосов
/ 30 января 2020

Подводя итоги комментариев, так как, возможно, немного сложно понять, что вы должны делать

В общем, если вы получаете ошибку "Неразрешенные зависимости", посмотрите на 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"
...