Ich verwende SBT (innerhalb von IntelliJ IDEA), um ein einfaches Scala-Projekt zu erstellen.
Ich würde gerne wissen, was der einfachste Weg ist , eine Uber JAR- Datei (auch bekannt als Fat JAR, Super JAR) zu erstellen .
Ich verwende derzeit SBT, aber wenn ich meine JAR-Datei an Apache Spark sende , wird der folgende Fehler angezeigt :
Ausnahme im Thread "main" java.lang.SecurityException: Ungültiger Digest der Signaturdatei für Manifest-Hauptattribute
Oder dieser Fehler während der Kompilierungszeit:
java.lang.RuntimeException: deduplizieren: Unterschiedlicher Dateiinhalt im Folgenden:
PATH \ DEPENDENCY.jar: META-INF / DEPENDENCIES
PATH \ DEPENDENCY.jar: META-INF / MANIFEST.MF
Es sieht so aus, als ob einige meiner Abhängigkeiten Signaturdateien (META-INF) enthalten, die in der endgültigen Uber JAR-Datei entfernt werden müssen.
Ich habe versucht, das sbt-Assembly- Plugin folgendermaßen zu verwenden:
/project/assembly.sbt
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.12.0")
/project/plugins.sbt
logLevel := Level.Warn
/build.sbt
lazy val commonSettings = Seq(
name := "Spark-Test"
version := "1.0"
scalaVersion := "2.11.4"
)
lazy val app = (project in file("app")).
settings(commonSettings: _*).
settings(
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "1.2.0",
"org.apache.spark" %% "spark-streaming" % "1.2.0",
"org.apache.spark" % "spark-streaming-twitter_2.10" % "1.2.0"
)
)
Wenn ich in IntelliJ IDEA auf " Artefakt erstellen ... " klicke, erhalte ich eine JAR-Datei. Aber am Ende habe ich den gleichen Fehler ...
Ich bin neu bei SBT und habe nicht sehr viel mit IntelliJ IDE experimentiert.
Vielen Dank.
META-INF
Dateien herausfiltern - ein Blog-Beitrag, der helfen könnte : janschulte.wordpress.com/2014/03/20/…