我正在使用SBT(在IntelliJ IDEA中)构建一个简单的Scala项目。
我想知道构建Uber JAR文件(又名Fat JAR,Super JAR)的最简单方法是什么。
我目前正在使用SBT,但是当我将JAR文件提交给Apache Spark时,出现以下错误:
线程“主”中的异常java.lang.SecurityException:清单主要属性的无效签名文件摘要
或在编译期间出现此错误:
java.lang.RuntimeException:重复数据删除:在以下文件中找到了不同的文件内容:
PATH \ DEPENDENCY.jar:META-INF / DEPENDENCIES
PATH \ DEPENDENCY.jar:META-INF / MANIFEST.MF
它看起来像那是因为我的一些依赖包括需要在尤伯杯决赛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
文件-一篇可能有用的