Ошибка UNRESOLVED DEPENDENCIES при попытке создать банку

Я пытаюсь создать jar файл Scala, чтобы запустить его в искровом режиме.
Я следую этому учебнику.
при попытке создать файл jar с помощью sbt здесь, я столкнулся со следующей ошибкой

[info] Resolving org.apache.spark#spark-core_2.10.4;1.0.2 ...
[warn]  module not found: org.apache.spark#spark-core_2.10.4;1.0.2
[warn] ==== local: tried
[warn]   /home/hduser/.ivy2/local/org.apache.spark/spark-core_2.10.4/1.0.2/ivys/ivy.xml
[warn] ==== Akka Repository: tried
[warn]   http://repo.akka.io/releases/org/apache/spark/spark-core_2.10.4/1.0.2/spark-core_2.10.4-1.0.2.pom
[warn] ==== public: tried
[warn]   http://repo1.maven.org/maven2/org/apache/spark/spark-core_2.10.4/1.0.2/spark-core_2.10.4-1.0.2.pom
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: org.apache.spark#spark-core_2.10.4;1.0.2: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[error] {file:/home/prithvi/scala/asd/}default-d57abf/*:update: sbt.ResolveException: unresolved dependency: org.apache.spark#spark-core_2.10.4;1.0.2: not found
[error] Total time: 2 s, completed 13 Aug, 2014 5:24:24 PM

какая проблема и как ее решить.


Проблема зависимости решена. Спасибо "om-nom-nom", но возникла новая ошибка

[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::              FAILED DOWNLOADS            ::
[warn]  :: ^ see resolution messages for details  ^ ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: org.eclipse.jetty.orbit#javax.transaction;1.1.1.v201105210645!javax.transaction.orbit
[warn]  :: org.eclipse.jetty.orbit#javax.servlet;3.0.0.v201112011016!javax.servlet.orbit
[warn]  :: org.eclipse.jetty.orbit#javax.mail.glassfish;1.4.1.v201005082020!javax.mail.glassfish.orbit
[warn]  :: org.eclipse.jetty.orbit#javax.activation;1.1.0.v201105071233!javax.activation.orbit
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[error] {file:/home/prithvi/scala/asd/}default-c011e4/*:update: sbt.ResolveException: download failed: org.eclipse.jetty.orbit#javax.transaction;1.1.1.v201105210645!javax.transaction.orbit
[error] download failed: org.eclipse.jetty.orbit#javax.servlet;3.0.0.v201112011016!javax.servlet.orbit
[error] download failed: org.eclipse.jetty.orbit#javax.mail.glassfish;1.4.1.v201005082020!javax.mail.glassfish.orbit
[error] download failed: org.eclipse.jetty.orbit#javax.activation;1.1.0.v201105071233!javax.activation.orbit
[error] Total time: 855 s, completed 14 Aug, 2014 12:28:33 PM

Ответ 1

У вас есть зависимость, определенная как

"org.apache.spark" %% "spark-core" % "1.0.2"

То, что %% инструктирует sbt заменить текущую версию scala на имя артефакта. По-видимому, искра была построена для всего семейства 2.10 scala, без конкретных банок для 2.10.1, 2.10.2...

Итак, все, что вам нужно сделать, это переопределить его как:

"org.apache.spark" % "spark-core_2.10" % "1.0.2"

Ответ 2

spark-core_2.10.4; 1.0.2 означает, что он построен поверх scala 2.10 vesion. поэтому вы должны указать этот scalaVersion: = "2.10.4" в файле сборки. Проверьте файл .sbt и соответствующим образом измените его.

Ответ 3

libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "1.1.0",
"org.eclipse.jetty.orbit" % "javax.servlet" % "3.0.0.v201112011016",
"org.eclipse.jetty.orbit" % "javax.transaction" % "1.1.1.v201105210645",
"org.eclipse.jetty.orbit" % "javax.mail.glassfish" % "1.4.1.v201005082020"

)

Ответ 4

Как вы можете изменить текущие зависимости? Я имею в виду, когда вы вводите sbt-пакет для файла сборки, например:

name := "Simple Project"

version := "1.0"

scalaVersion := "2.10.4"

libraryDependencies += "org.apache.spark" %% "spark-core" % "1.2.0"

SBT начнет разрешать и загружать все виды зависимостей. Но если вы видите, что это не работает на зависимость, которая больше не находится в maven repo, что делать? Где вы можете изменить ожидаемые транзакции.

@OP: Проблема в том, что ваш SBT устарел. Если вы скачали его с помощью apt, вы можете использовать apt, чтобы удалить его. В любом случае загрузите последний .tgz(а не .deb) и просто распакуйте его, после чего добавьте папку/sbt/bin/в ваш .bashrc. Я заметил, что более старые версии SBT (версии .deb и apt-get) работают с более старыми версиями scala. Вам либо нужно вручную добавлять или изменять зависимости, которые старший SBT пытается найти, либо просто изменить на последний (не sooo) SBT.