Wie erstelle ich eine Uber JAR (Fat JAR) mit SBT in IntelliJ IDEA?

Ich verwende SBT (innerhalb von IntelliJ IDEA), um ein einfaches Scala-Projekt zu erstellen.

Ich würde gerne wissen, was das @ ieinfachster Weg um ein @ zu bauUber JAR Datei (aka Fat JAR, Super JAR).

Ich verwende momentan SBT, aber wenn ich meine JAR-Datei an @ senApache Spark Ich erhalte den folgenden Fehler:

Exception in Thread "main" java.lang.SecurityException: Ungültiger Signaturdatei-Digest für Manifest-Hauptattribute

Oder dieser Fehler während der Kompilierung:

java.lang.RuntimeException: deduplicate: Unterschiedliche Dateiinhalte im Folgenden:
PATH \ DEPENDENCY.jar: META-INF / DEPENDENCIES
PATH \ DEPENDENCY.jar: META-INF / MANIFEST.MF

Itsieht aus wi Es liegt daran, dass einige meiner Abhängigkeiten Signaturdateien (META-INF) enthalten, die in der endgültigen Uber JAR-Datei entfernt werden müssen.

Ich habe versucht, das @ zu verwend sbt-assembly Plugin so:

/ 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 auf "Build Artifact ... "in IntelliJ IDEA bekomme ich eine JAR-Datei. Am Ende tritt jedoch derselbe Fehler auf ...

Ich bin neu bei SBT und habe nicht viel Erfahrung mit IntelliJ IDE.

Vielen Dank

Antworten auf die Frage(6)

Ihre Antwort auf die Frage