我想知道什么时候使用sbt assembly,什么时候使用sbt compile && sbt package
我正在用Intellij在我的本地计算机上编写一个程序,我用sbt compile && sbt package编译它,然后我将把它上传到一个集群中,并使用spark-submit运行它。这是最好的方法吗?我应该什么时候使用sbt assembly
发布于 2018-12-25 22:06:41
我想知道什么时候应该使用
sbt assembly,什么时候使用sbt compile && sbt package?
引用sbt-装配的网站(提供sbt assembly):
目标很简单:创建一个包含所有依赖项的项目的胖JAR。
build.sbt中的任何依赖项(未标记为Provided)都将成为称为uber-jar的最终jar文件的一部分。
至少有两个原因可以解释为什么您想使用这个插件:
spark-submit的集群运行应用程序,比如2.0.0您可以使用sbt compile && sbt package编译和打包应用程序的类(顺便说一句,这些类不需要使用火花)。该jar文件不包括应用程序的依赖项,因此任何依赖项都必须以其他方式提供(并且使部署变得有点诡计)。
注:sbt compile && sbt package只是sbt compile package的一个更长的变体,考虑到compile任务是package的依赖关系,那么package就是sbt package。
发布于 2018-12-12 21:13:53
"sbt程序集“在您想要包含所有依赖项的uber jar时使用是很好的。您将需要使用"sbt程序集“的组装插件。
通常,当您不希望在目标机器上单独提供依赖的jar时,这种jar很适合构建。您可以避免依赖第三方jar版本错配相关的问题,通过这种包装。
https://stackoverflow.com/questions/53744950
复制相似问题