相关疑难解决方法(0)

如何在IntelliJ IDEA中使用SBT构建Uber JAR(Fat JAR)?

我正在使用SBT(在IntelliJ IDEA中)构建一个简单的Scala项目.

我想知道构建Uber JAR文件(又名Fat JAR,Super JAR)的最简单方法是什么.

我目前正在使用SBT但是当我将我的JAR文件提交给Apache Spark时,我收到以下错误:

线程"main"中的异常java.lang.SecurityException:Manifest主要属性的签名文件摘要无效

或者在编译期间出现此错误:

java.lang.RuntimeException:deduplicate:在以下位置找到不同的文件内容:
PATH\DEPENDENCY.jar:META-INF/DEPENDENCIES
PATH\DEPENDENCY.jar:META-INF/MANIFEST.MF

看起来是因为我的一些依赖项包括需要在最终的Uber JAR文件中删除的签名文件(META-INF).

我尝试使用这样的sbt-assembly插件:

/project/assembly.sbt

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.12.0")
Run Code Online (Sandbox Code Playgroud)

/project/plugins.sbt

logLevel := Level.Warn
Run Code Online (Sandbox Code Playgroud)

/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" …
Run Code Online (Sandbox Code Playgroud)

scala meta-inf intellij-idea uberjar sbt

85
推荐指数
3
解决办法
7万
查看次数

标签 统计

intellij-idea ×1

meta-inf ×1

sbt ×1

scala ×1

uberjar ×1