私はSBT(IntelliJ IDEA内)を使用して単純なScalaプロジェクトを構築しています。
Uber JARファイル(別名Fat JAR、Super JAR)を作成する最も簡単な方法は何ですか?
現在SBTを使用していますが、JARファイルをApache Sparkに送信すると、次のエラーが発生します。
スレッド「メイン」の例外java.lang.SecurityException:マニフェストのメイン属性の無効な署名ファイルダイジェスト
または、コンパイル時のこのエラー:
java.lang.RuntimeException:deduplicate:次の場所にある異なるファイルの内容:
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
-ファイル1回のブログ記事そのかもしれないが:ヘルプjanschulte.wordpress.com/2014/03/20/...