我正在使用 SBT(在 IntelliJ IDEA 中)构建一个简单的 Scala 项目。
我想知道构建Uber JAR的最简单方法是什么文件(又名 Fat JAR、Super JAR)
我目前正在使用 SBT,但是当我将 JAR 文件提交到Apache Spark时,我收到以下错误:
线程“main”中的异常 java.lang.SecurityException:Manifest 主要属性的签名文件摘要无效
或者编译时出现这个错误:
java.lang.RuntimeException:去重:在以下位置找到不同的文件内容:
PATH\DEPENDENCY.jar:META-INF/DEPENDENCIES
PATH\DEPENDENCY.jar:META-INF/MANIFEST.MF
看起来像是因为我的一些依赖项包括签名文件(META-INF),需要在最终的 Uber JAR 文件中删除。
我尝试使用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"
)
)
当我单击“构建工件... ”时,我得到一个 JAR 文件。但我最终得到了同样的错误......
我是 SBT 的新手,对 IntelliJ IDE 的实验并不多。
谢谢。