我想知道我什么时候应该使用sbt assembly
什么时候sbt compile && sbt package
?
我正在使用 Intellij IDEA 在本地计算机上编写一个程序,并使用以下命令进行编译sbt compile && sbt package
,然后我将把它上传到集群并使用运行它spark-submit
。这是最好的方法吗?我应该什么时候使用sbt assembly
?
我想知道我什么时候应该使用sbt assembly
什么时候sbt compile && sbt package
?
Quoting sbt组装的网站(给出sbt assembly
):
目标很简单:创建项目的 fat JAR 及其所有依赖项。
任何依赖build.sbt
(未标记为Provided
)将成为最终 jar 文件的一部分,称为 uber-jar。
您想要使用该插件至少有两个原因:
- 将所有依赖项捆绑在一个 jar 文件中,这样更容易部署到生产环境(类似于 Docker 映像)
- 使用一个 Spark 版本(例如 2.0.0)和一个具有以下功能的集群来运行您的应用程序:
spark-submit
从 Spark 1.6.0 开始
You use sbt compile && sbt package
编译并打包应用程序的类(顺便说一句,不必使用 Spark)。该 jar 文件不包含应用程序的依赖项,因此必须以其他方式提供任何依赖项(并且使部署有点复杂)。
NB: sbt compile && sbt package
只是一个更长的变体sbt compile package
鉴于此compile
任务是一个依赖项package
只是sbt package
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)