Ich habe ein Scala Multi-Projekt mit Funken und versuchen, die sbt-Plugin sbt-Assembly 0.14.3, um ein Fettglas zu machen. Mein buils.sbt aussehen, dass:Wie man Multi-Projekt Fett Glas mit sbt-Assembly
lazy val commonSettings = Seq(
organization := "blabla",
version := "0.1.0",
scalaVersion := "2.11.8"
)
lazy val core = (project in file("."))
.settings(commonSettings: _*)
.settings(libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "1.6.1" % "provided",
"org.apache.spark" %% "spark-sql" % "1.6.1" % "provided",
"org.apache.spark" %% "spark-mllib" % "1.6.1" % "provided",...)
lazy val sub_project = project
.settings(commonSettings: _*)
.aggregate(core)
.dependsOn(core)
Und ich möchte ein fettes Glas des sub_project schaffen, so dass dieses Fett Glas enthält alle die Bibliothek und Code aus dem Projekt Kern. Ich habe versucht, die folgenden:
sbt
project sub_project
assembly
und ich erhalte den folgenden Fehler:
[error] missing or invalid dependency detected while loading class file 'blabla.class'.
[error] Could not access term spark in package org.apache,
[error] because it (or its dependencies) are missing. Check your build definition for
[error] missing or conflicting dependencies. (Re-run with `-Ylog-classpath` to see the problematic classpath.)
[error] A full rebuild may help if 'blabla.class' was compiled against an incompatible version of org.apache.
[error] one error found
Allerdings, wenn ich „Montage“ auf dem Kernprojekt verwenden, kann ich mein Fett Glas bekommen.
Entspricht Ihre angegebene Scala-Version der Datei, für die Spark kompiliert wurde? – nattyddubbs
Ja, aber es ist nur die Verpackung, ich versuche noch nicht, es auszuführen, also auch wenn die Version anders ist, sollte es kein Problem für die Verpackung sein – Jitsumi