为什么 sbt 程序集失败并显示“无效命令:程序集”?

kir*_*ran 6 scala sbt sbt-assembly apache-spark

我将 Spark 安装到C:\Spark1_6\spark-1.6.0-bin-hadoop2.6. 导航到此路径后,我正在输入sbt assembly命令并收到以下错误消息:

[error] Not a valid command: assembly
[error] Not a valid project ID: assembly
[error] Expected ':'
[error] Not a valid key: assembly
[error] assembly
[error]         ^
Run Code Online (Sandbox Code Playgroud)

这是我的 sbt 项目结构。

-Project101
  -project
     -build.properties
     -plugins.sbt
-src
-build.sbt
Run Code Online (Sandbox Code Playgroud)

这是我的build.sbt

name := "Project101"
version := "1.0"
scalaVersion := "2.10.2"
libraryDependencies ++= Seq(
  "org.apache.spark" % "spark-core_2.10" % "1.6.0" exclude ("org.apache.hadoop","hadoop-yarn-server-web-proxy"),
  "org.apache.spark" % "spark-sql_2.10" % "1.6.0" exclude ("org.apache.hadoop","hadoop-yarn-server-web-proxy"),
  "org.apache.spark" %% "spark-hive" % "1.6.0",
  "org.apache.spark" %% "spark-streaming" % "1.6.0",
  "org.apache.spark" %% "spark-streaming-kafka" % "1.6.0"
)
resolvers in Global ++= Seq(
  "Sbt plugins"                   at "https://dl.bintray.com/sbt/sbt-plugin-releases",
  "Maven Central Server"          at "http://repo1.maven.org/maven2",
  "TypeSafe Repository Releases"  at "http://repo.typesafe.com/typesafe/releases/",
  "TypeSafe Repository Snapshots" at "http://repo.typesafe.com/typesafe/snapshots/"
)
Run Code Online (Sandbox Code Playgroud)

这是plugins.sbt

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.12.0")
Run Code Online (Sandbox Code Playgroud)

sbt package命令正在运行并且能够创建 jar 文件。但是我也必须执行sbt assembly命令但不起作用。

Jac*_*ski 7

不是有效的命令:汇编

每当您遇到错误消息时,请确保您位于项目的顶级目录中并安装了sbt-assemble插件。

如果目录中有项目Project101,请确保project/plugins.sbt其中包含以下行:

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.12.0")
Run Code Online (Sandbox Code Playgroud)

这样,您应该再次进入Project101目录并执行sbt assembly. 这应该执行插件来创建 uber-jar。