找不到sbt程序集命令

时间:2015-04-08 19:29:31

标签: sbt sbt-assembly

我试图运行sbt程序集。根据{{​​3}},对于sbt 0.13.6+(I' m在0.13.7上),这应该自动包含在JvmPlugin的任何内容中。根据{{​​1}}我在root中启用了JvmPlugin。当我运行sbt plugins时,我得到"不是有效的commamdn:assembly"。我尝试过使用包含sbt-assembly的旧方法和所有不同类型的sbt配置,但似乎都没有。这是我的构建文件的样子(注意sbt包工作正常)

assembly.sbt

sbt assembly

build.sbt

addSbtPlugin("com.eed3si8n" % "sbt-assembly" % "0.13.0")

这是错误:

lazy val commonSettings = Seq(
  organization := "com.test",
  version := "1.0",
  scalaVersion := "2.10.4"
)

lazy val root = (project in file(".")).
  settings(commonSettings: _*).
  settings(
    name := "test",

    resolvers ++= Seq(
      ...
    ),

    libraryDependencies ++= Seq(
      ...
    )
)

有什么想法吗?在Linux上运行。感谢

7 个答案:

答案 0 :(得分:28)

您是否在项目的根目录中创建了assembly.sbt?与build.sbt一起?

如果是这样,那就是问题所在。您希望将其放在project目录中。

完成后,它按照预期完成了其他设置的方框:

> assembly
[info] Including: scala-library.jar
[info] Checking every *.class/*.jar file's SHA-1.
[info] Merging files...
[warn] Merging 'META-INF/MANIFEST.MF' with strategy 'discard'
[warn] Strategy 'discard' was applied to a file
[info] SHA-1: 1ae0d7a9c433e439e81ce947659bf05aa62a2892
[info] Packaging /Users/dnw/Desktop/t-2015-04-08.2340/target/scala-2.10/test-assembly-1.0.jar ...
[info] Done packaging.
[success] Total time: 2 s, completed 08-Apr-2015 23:45:59

答案 1 :(得分:2)

自从在0.13.5中引入自动插件以来,不建议为每个sbt documentation添加插件的显式.sbt文件(插件不实现自动插件特性的特定情况除外)。

addSbtPlugin("com.eed3si8n" % "sbt-assembly" % "0.13.0")添加回plugins.sbt目录下的project,然后移除assembly.sbt。如果仍然看到错误,请在build.sbt中显式启用插件:

lazy val root = (project in file(".")).
  settings(commonSettings: _*).
  settings(
    name := "test",
  ).
  enablePlugins(AssemblyPlugin)

答案 2 :(得分:2)

lazy val root = (project in file(".")).
  settings(commonSettings: _*).
  settings(
    assemblySettings ++ Seq(
    jarName in assembly := "roobricks-spark.jar",
    test in assembly := {}
  ).
  enablePlugins(AssemblyPlugin)

你可以这一次。

答案 3 :(得分:1)

您通常应该在根级别的 plugins.sbt 旁边有一个 build.properties 文件,您应该在其中包含以下内容:

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.15.0")

答案 4 :(得分:0)

来自sparkour:

使用assembly.plugin的addSbtPlugin(“com.eed3si9n”%“sbt-assembly”%“0.14.4”)可以正常工作

答案 5 :(得分:0)

遇到了同样的错误。原因是我从错误的内部目标文件夹

执行它

答案 6 :(得分:0)

我也发生了同样的事情。将assembly.sbt从根目录移到project/目录内部