Basit bir Scala projesi oluşturmak için SBT (IntelliJ IDEA içinde) kullanıyorum.
Bir Uber JAR dosyası (diğer adıyla Fat JAR, Super JAR) oluşturmanın en basit yolunun ne olduğunu bilmek istiyorum .
Şu anda SBT kullanıyorum ancak JAR dosyamı Apache Spark'a gönderirken aşağıdaki hatayı alıyorum:
"Main" iş parçacığında istisna java.lang.SecurityException: Manifest ana öznitelikleri için geçersiz imza dosyası özeti
Veya derleme sırasında bu hata:
java.lang.RuntimeException: tekilleştirme: aşağıda bulunan farklı dosya içerikleri:
PATH \ DEPENDENCY.jar: META-INF / DEPENDENCIES
PATH \ DEPENDENCY.jar: META-INF / MANIFEST.MF
Bu gibi görünüyor benim bağımlılıkları bazı nihai Uber JAR dosyasında kaldırılması gerekir imza dosyalarını (META-INF) içerdikleri öyle.
Sbt-assembly eklentisini şu şekilde kullanmaya çalıştım :
/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"
)
)
IntelliJ IDEA'da " Yapı Oluştur ... " seçeneğini tıkladığımda bir JAR dosyası alıyorum. Ama aynı hatayla sonuçlanıyorum ...
SBT'de yeniyim ve IntelliJ IDE ile pek deneyime sahip değilim.
Teşekkürler.
META-INF
dosyaları filtrelemeniz gerekebilir - yardımcı olabilecek bir blog yazısı : janschulte.wordpress.com/2014/03/20/…