【问题标题】:How to create fat jar using sbt如何使用 sbt 创建 fat jar
【发布时间】:2017-01-17 08:46:54
【问题描述】:

我是激发编程的新手。我想创建包含所有依赖 jar 的胖 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]  

所以请任何人知道创建胖罐的最佳方法。

提前致谢。

编辑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")

编辑2-

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

【问题讨论】:

    标签: apache-spark sbt sbt-assembly


    【解决方案1】:

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

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

    按照教程,你会很好:

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

    【讨论】:

    • 我关注了给定的链接,但是当我运行 sbt assembly 时出现以下错误:---fatal: 无法连接到 github.com: github.com[0: 192.30.253.113]: errno=连接被拒绝 github.com[1: 192.30.253.112]: errno=连接被拒绝谢谢
    • 好吧,他们改变了一些东西。像以前一样恢复您的项目,然后尝试使用官方文档。在 assembly.sbt 文件中添加依赖项就足够了。 github.com/sbt/sbt-assembly
    • 您是否删除了 Plugins 对象中的“dependsOn”部分?
    • 我关注了这个官方文档。它给出了错误发布的问题。感谢您的快速回复。
    • 请检查 build.sbt 和 assembly.sbt 的更新问题
    猜你喜欢
    • 2015-04-12
    • 2017-07-19
    • 2019-09-12
    • 1970-01-01
    • 2016-10-01
    • 2017-06-07
    • 2014-09-19
    • 2021-09-05
    • 2013-02-18
    相关资源
    最近更新 更多