如何使用 sbt 创建 fat jar

How to create fat jar using sbt

我是 spark 编程的新手。我想创建包含所有依赖项 jar 的 fat jar。目前我是 运行 spark 应用程序,使用以下命令

./spark-submit -class XYZ --jars dependency_1,dependency_2 main.jar

但我不想每次都传递这些依赖jar。我用谷歌搜索但找不到有效的解决方案。

我尝试过的一种方法是使用程序集插件。但它给出了以下错误。

[error] Not a valid command: assembly
[error] Not a valid project ID: assembly
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: assembly
[error] assembly
[error]  

所以请任何人知道哪种是创建 fat jar 的最佳方法。

提前致谢。

编辑1--

我的build.sbt--

import AssemblyKeys._

assemblySettings

name := "Update Sim Count"

version := "1.0"

scalaVersion := "2.10.0"

libraryDependencies += "org.apache.spark" %% "spark-core" % "1.6.0"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "1.6.0"
libraryDependencies += "com.datastax.spark" %% "spark-cassandra-connector" % "1.5.0-RC1"

libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.12"

assembly.sbt:

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.3")

Edit2-

@Chobeat 给出的答案有效。关注了那个博客。不需要那个博客的build.scala。您只能将 assembly.sbt 和几行添加到 build.sbt。那对你有用。感谢@Chobeat 的帮助。

记得将 sbt 程序集插件添加到您的项目中。这不是默认命令。

一开始用 Spark 构建一个胖罐子有点棘手,但这不是黑魔法。这也是实现你想要做的事情的正确方法。

按照教程学习,你会很好的:

http://blog.prabeeshk.com/blog/2014/04/08/creating-uber-jar-for-spark-project-using-sbt-assembly/