我正在使用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