Ошибка 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.