在最近流行的sbt应用https://github.com/databricks/reference-apps中,我找到了一条要求我
的行import AssemblyKeys._
此行不在SBT或我的IntelliJ IDEA中编译。
使用的导入是什么以及为什么必要?
答案 0 :(得分:5)
使用最新版本,我们不再需要导入AssemblyKeys._
检查升级指南here
答案 1 :(得分:3)
查看sbt-assembly插件。
你基本上需要
在您的sbt项目的assembly.sbt
文件夹下,将以下行添加到文件中,例如*.sbt
(或实际上任何project
文件):
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.11.2")
将导入行放在build.sbt
的顶部(在project
子目录所在的目录中)。
import AssemblyKeys._
使用上述文件,最基本的项目结构应如下所示:
➜ myProjectName tree
.
|-- build.sbt
`-- project
`-- assembly.sbt
1 directory, 2 files
答案 2 :(得分:2)
The other answer by @mfirry几乎可以回答构建(定义)带来的import AssemblyKeys._
部分。这是sbt-assembly插件(引用the docs of the plugin):
使用所有依赖项创建项目的胖JAR。
插件需要它来完成它的工作。
你可能会问自己为什么我需要这个插件。
由于你没有引用需要导入的应用程序,因此没有引用插件,我也没有查看这些示例,我只能猜测公司Databricks是Apache Spark背后的商业实体示例使用。
为了将应用程序部署到Apache Spark集群上,您需要汇编整个应用程序并配置工作人员,以便他们可以访问二进制文件(具有必要的依赖关系,即jar)。这是sbt-assembly
插件的目的,打包所有并提供单个应用程序jar,以便Spark可以使用。请参阅Apache Spark文档中的Standalone Applications以了解独立案例(无集群环境):
为了让sbt正常工作,我们需要布局SimpleApp.scala和 simple.sbt根据典型的目录结构。一旦那样 在适当的位置,我们可以创建一个包含应用程序的JAR包 代码,然后使用spark-submit脚本运行我们的程序。
您可能需要阅读Cluster Mode Overview以概述如何将Spark应用程序部署到Spark群集。