首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么时候使用"sbt程序集“和"sbt编译& sbt包”?

什么时候使用"sbt程序集“和"sbt编译& sbt包”?
EN

Stack Overflow用户
提问于 2018-12-12 14:13:29
回答 2查看 3K关注 0票数 3

我想知道什么时候使用sbt assembly,什么时候使用sbt compile && sbt package

我正在用Intellij在我的本地计算机上编写一个程序,我用sbt compile && sbt package编译它,然后我将把它上传到一个集群中,并使用spark-submit运行它。这是最好的方法吗?我应该什么时候使用sbt assembly

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-25 22:06:41

我想知道什么时候应该使用sbt assembly,什么时候使用sbt compile && sbt package

引用sbt-装配的网站(提供sbt assembly):

目标很简单:创建一个包含所有依赖项的项目的胖JAR。

build.sbt中的任何依赖项(未标记为Provided)都将成为称为uber-jar的最终jar文件的一部分。

至少有两个原因可以解释为什么您想使用这个插件:

  1. 将所有依赖项捆绑在一个jar文件中,该文件更易于部署到生产中(类似于Docker映像)
  2. 使用Spark1.6.0中具有spark-submit的集群运行应用程序,比如2.0.0

您可以使用sbt compile && sbt package编译和打包应用程序的类(顺便说一句,这些类不需要使用火花)。该jar文件不包括应用程序的依赖项,因此任何依赖项都必须以其他方式提供(并且使部署变得有点诡计)。

注:sbt compile && sbt package只是sbt compile package的一个更长的变体,考虑到compile任务是package的依赖关系,那么package就是sbt package

票数 8
EN

Stack Overflow用户

发布于 2018-12-12 21:13:53

"sbt程序集“在您想要包含所有依赖项的uber jar时使用是很好的。您将需要使用"sbt程序集“的组装插件。

通常,当您不希望在目标机器上单独提供依赖的jar时,这种jar很适合构建。您可以避免依赖第三方jar版本错配相关的问题,通过这种包装。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53744950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档