Używam SBT (w ramach IntelliJ IDEA) do zbudowania prostego projektu Scala.Jak zbudować Uber JAR (Fat JAR) za pomocą SBT w ramach IntelliJ IDEA?
Chciałbym wiedzieć, co jest Najprostszym sposobem zbudować Uber plik JAR (aka Gruby JAR, Super JAR).
obecnie używam SBT ale kiedy jestem wysłaniem mój plik JAR do Apache Spark pojawia się następujący błąd:
Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
albo to błąd podczas kompilacji:
java.lang.RuntimeException: deduplicate: different file contents found in the following:
PATH\DEPENDENCY.jar:META-INF/DEPENDENCIES
PATH\DEPENDENCY.jar:META-INF/MANIFEST.MF
To looks like dzieje się tak dlatego, że niektóre z moich zależności zawierają pliki sygnatur (META-INF), które należy usunąć w ostatecznym pliku JAR Uber.
Próbowałem użyć sbt-assembly wtyczki tak:
/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"
)
)
Po kliknięciu "Artefakt kompilacji ..." w IntelliJ IDEA Dostaję plik JAR. Ale kończę z tym samym błędem ...
Jestem nowy w SBT i nie bardzo eksperymentowałem z IntelliJ IDE.
Dzięki.
przez dźwięk rzeczy może trzeba odfiltrować 'pliki META-INF' - jeden blogu, że potęga * * help: https: //janschulte.wordpress.com/2014/03/20/removing-meta-inf-directory-from-sbt-assembly/ –