Como criar um Uber JAR (Fat JAR) usando o SBT no IntelliJ IDEA?
Estou usando o SBT (no IntelliJ IDEA) para criar um projeto Scala simples.
Eu gostaria de saber qual é omaneira mais simples para construir umUber JAR arquivo (também conhecido como Fat JAR, Super JAR).
Atualmente, estou usando o SBT, mas quando estou enviando meu arquivo JAR paraApache Spark Estou tendo o erro a seguir:
Exceção no encadeamento "main" java.lang.SecurityException: resumo do arquivo de assinatura inválido para os principais atributos do Manifest
Ou este erro durante o tempo de compilação:
java.lang.RuntimeException: deduplicado: conteúdo de arquivo diferente encontrado no seguinte:
PATH \ DEPENDENCY.jar: META-INF / DEPENDENCIES
PATH \ DEPENDENCY.jar: META-INF / MANIFEST.MF
istoparece é porque algumas de minhas dependências incluem arquivos de assinatura (META-INF), que precisam ser removidos no arquivo Uber JAR final.
Eu tentei usar omontagem-sbt plugin assim:
/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"
)
)
Quando clico em "Criar artefato ..."no IntelliJ IDEA, recebo um arquivo JAR. Mas acabo com o mesmo erro ...
Eu sou novo no SBT e não tenho muita experiência com o IntelliJ IDE.
Obrigado.