我正在使用SBT(在IntelliJ IDEA中)構建一個簡單的Scala項目。如何在IntelliJ IDEA中使用SBT構建Uber JAR(Fat JAR)?
我想知道什麼是要建立一個尤伯杯JAR文件(又名脂肪JAR,超級JAR)的最簡單的方法。
我目前使用SBT但是當我submiting我的JAR文件Apache Spark我得到以下錯誤:
Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
還是這個錯誤在編譯時:
java.lang.RuntimeException: deduplicate: different file contents found in the following:
PATH\DEPENDENCY.jar:META-INF/DEPENDENCIES
PATH\DEPENDENCY.jar:META-INF/MANIFEST.MF
它looks like這是因爲我的一些依賴包括需要在最終的Uber JAR文件中刪除的簽名文件(META-INF)。
我試圖用sbt-assembly插件這樣的:
/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中單擊「Build Artifact ...」時,我得到一個JAR文件。但我結束了相同的錯誤...
我是新來的SBT和沒有很好的實驗與IntelliJ IDE。
謝謝。
通過的事情,你可能需要過濾掉'META-INF'文件的聲音 - 一個博客貼子,*力量*幫助:HTTPS: //janschulte.wordpress.com/2014/03/20/removing-meta-inf-directory-from-sbt-assembly/ – 2015-02-11 18:57:21