मैं एक सरल स्काला प्रोजेक्ट बनाने के लिए SBT (IntelliJ IDEA के भीतर) का उपयोग कर रहा हूं।
मैं जानना चाहूंगा कि Uber JAR फ़ाइल (उर्फ फैट जार, सुपर जार) बनाने का सबसे सरल तरीका क्या है ।
मैं वर्तमान में SBT का उपयोग कर रहा हूं, लेकिन जब मैं अपनी JAR फाइल को Apache Spark में सबमिट कर रहा हूं तो मुझे निम्नलिखित त्रुटि मिलती है:
थ्रेड में अपवाद "मुख्य" java.lang.SecurityException: अमान्य हस्ताक्षर फ़ाइल मैनिफ़ेस्ट मुख्य विशेषताओं के लिए पचती है
या संकलन समय के दौरान यह त्रुटि:
java.lang.RuntimeException: deduplicate: निम्नलिखित में पाई जाने वाली विभिन्न फ़ाइल सामग्री:
PATH \ DEPENDENCY.jar: META-INF / DEPENDENCIES
PATH \ DEPENDENCY.jar: META-INF / MANIFEST.MF
ऐसा लगता है कि ऐसा इसलिए है क्योंकि मेरे कुछ आश्रितों में सिग्नेचर फाइल्स (META-INF) शामिल हैं जिन्हें अंतिम उबेर आरएआर फाइल में निकालने की जरूरत है।
मैंने उस तरह sbt- असेंबली प्लगइन का उपयोग करने की कोशिश की :
/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 में " बिल्ड आर्टवर्क ... " पर क्लिक करता हूं तो मुझे एक JAR फाइल मिलती है। लेकिन मैं उसी त्रुटि के साथ समाप्त होता हूं ...
मैं एसबीटी के लिए नया हूं और इंटेलीज आईडीई के साथ बहुत प्रयोग नहीं किया गया है।
धन्यवाद।
META-INF
फ़ाइलों को फ़िल्टर करने की आवश्यकता हो सकती है - एक ब्लॉग पोस्ट जो मदद कर सकती है: janschulte.wordpress.com/2014/03/20/…