Używam SBT (w IntelliJ IDEA) do zbudowania prostego projektu Scala.
Chciałbym wiedzieć, jaki jest najprostszy sposób na zbudowanie pliku JAR Ubera (inaczej Fat JAR, Super JAR).
Obecnie używam SBT, ale podczas przesyłania mojego pliku JAR do Apache Spark pojawia się następujący błąd:
Wyjątek w wątku „main” java.lang.SecurityException: Nieprawidłowe podsumowanie pliku podpisu dla głównych atrybutów manifestu
Lub ten błąd podczas kompilacji:
java.lang.RuntimeException: deduplicate: inna zawartość pliku znaleziona w następującym:
PATH \ DEPENDENCY.jar: META-INF / DEPENDENCIES
PATH \ DEPENDENCY.jar: META-INF / MANIFEST.MF
To wygląda to dlatego, że niektóre z moich uzależnień zawierać pliki sygnatur (meta-inf), która musi być usunięta w końcowym Uber pliku JAR.
Próbowałem użyć wtyczki sbt-assembly w następujący sposób :
/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"
)
)
Kiedy klikam „ Build Artifact ... ” w IntelliJ IDEA, otrzymuję plik JAR. Ale kończy się z tym samym błędem ...
Jestem nowy w SBT i niezbyt eksperymentowałem z IntelliJ IDE.
Dzięki.
META-INF
pliki - jeden blogu, że może pomóc: janschulte.wordpress.com/2014/03/20/...