构建Spark 0.5时找不到sbt-assembly

时间:2018-11-22 06:38:59

标签: scala apache-spark sbt

我正在尝试构建Spark的0.5分支,但是会引发错误:

  

sbt.ResolveException:未解决的依赖项:com.eed3si9n#sbt-assembly; 0.8.3:找不到

因此,我从dl.bintray.com手动下载了ivysjars,并将它们放入我的本地.ivy文件夹中。

具体来说,我在sbt-assembly下创建一个com.eed3si9n,并将文件重命名为:

enter image description here

但是,这不起作用。正确的解决方法是什么?

1 个答案:

答案 0 :(得分:4)

Spark branch-0.5根据project/build.properties使用sbt 0.11.3,所以已经很老了。

sbt社区存储库位置

project/plugins.sbt中存在一个错误。它指向scalasbt.artifactoryonline.com,但应指向repo.scala-sbt.org

$ git diff
diff --git a/project/plugins.sbt b/project/plugins.sbt
index 63d789d0c1..70dcfdba00 100644
--- a/project/plugins.sbt
+++ b/project/plugins.sbt
@@ -1,7 +1,7 @@
 resolvers ++= Seq(
   "sbt-idea-repo" at "http://mpeltonen.github.com/maven/",
   Classpaths.typesafeResolver,
-  Resolver.url("sbt-plugin-releases", new URL("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases/"))(Resolver.ivyStylePatterns)
+  Resolver.url("sbt-plugin-releases", new URL("http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/"))(Resolver.ivyStylePatterns)
 )

JDK 1.6

要运行旧版本的sbt,有必要使用旧版本的JDK。在这种情况下,为JDK 1.6。但是,在macOS上,JLine 1.6的JLine存在问题,因此我不得不禁用JLine。

$ jenv shell 1.6
$ java -version
java version "1.6.0_65"
...
$ sbt/sbt -Djline.terminal=jline.UnsupportedTerminal

这应该启动sbt shell。出现后,输入:

> package