2015-04-08 4 views
21

Я пытаюсь запустить сборку sbt. Согласно https://github.com/sbt/sbt-assembly, для sbt 0.13.6+ (я на 0.13.7) это должно включаться автоматически для чего-либо с JvmPlugin. Согласно sbt plugins, у меня включен JvmPlugin в корне. Когда я запускаю sbt assembly, я получаю «Недействительный commamdn: assembly». Я пробовал использовать старые методы включения sbt-assembly со всеми типами конфигураций sbt, но ни один из них не работает. Вот что мои файлы сборки выглядеть (тонкая нота SBT пакет работает)Команда сборки sbt не найдена

assembly.sbt

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

build.sbt

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(
     ... 
    ) 
) 

Здесь ошибка:

[error] Not a valid command: assembly 
[error] Not a valid project ID: assembly 
[error] Expected ':' (if selecting a configuration) 
[error] Not a valid key: assembly 
[error] assembly 
[error]  

Любые идеи? Работает на Linux. Спасибо

ответ

22

Вы создали 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 
+0

Это сработало, спасибо! –

1

Поскольку введение авто плагинов в 0.13.5, добавив явные .sbt файлы для плагинов (для конкретных кроме случаи, когда плагин не реализует свойство авто-плагина) не рекомендуется в отношении sbt documentation.

Добавить 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
lazy val root = (project in file(".")). 
    settings(commonSettings: _*). 
    settings(
    assemblySettings ++ Seq(
    jarName in assembly := "roobricks-spark.jar", 
    test in assembly := {} 
). 
    enablePlugins(AssemblyPlugin) 

может вы когда-то с этим.

0

От sparkour:

addSbtPlugin ("com.eed3si9n" % "SBT-сборка" % "0.14.4") с assembly.plugin работает

0

Наткнулся ту же ошибку. Причина заключалась в том, что я выполнял его из неправильной внутренней папки цели