Estoy usando SBT (dentro de IntelliJ IDEA) para construir un proyecto Scala simple.
Me gustaría saber cuál es la forma más sencilla de crear un archivo JAR de Uber (también conocido como Fat JAR, Super JAR).
Actualmente estoy usando SBT pero cuando envío mi archivo JAR a Apache Spark , aparece el siguiente error:
Excepción en el hilo "principal" java.lang.SecurityException: resumen de archivo de firma no válido para los atributos principales del manifiesto
O este error durante el tiempo de compilación:
java.lang.RuntimeException: deduplicate: diferentes contenidos de archivos encontrados en lo siguiente:
PATH \ DEPENDENCY.jar: META-INF / DEPENDENCIES
PATH \ DEPENDENCY.jar: META-INF / MANIFEST.MF
Se parece que se debe a que algunos de mis dependencias incluyen archivos de firma (META-INF) que debe ser eliminado en el archivo final JAR Uber.
Traté de usar el complemento sbt-assembly así:
/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"
)
)
Cuando hago clic en " Build Artifact ... " en IntelliJ IDEA, obtengo un archivo JAR. Pero termino con el mismo error ...
Soy nuevo en SBT y no tengo mucha experiencia con IntelliJ IDE.
Gracias.
META-INF
archivos, una publicación de blog que podría ayudar: janschulte.wordpress.com/2014/03/20/…