команда сборки sbt не найдена

Пытаюсь запустить сборку sbt. Согласно https://github.com/sbt/sbt-assembly, для sbt 0.13.6+ (я в версии 0.13.7) это должно быть включено автоматически для всего, что связано с JvmPlugin. Согласно sbt plugins у меня включен JvmPlugin в корне. Когда я запускаю sbt assembly, я получаю «Not a valid commamdn: assembly». Я пробовал использовать старые методы включения sbt-assembly со всеми различными типами конфигураций 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. Спасибо


person Jonathan Sweetman    schedule 08.04.2015    source источник


Ответы (7)


Вы создали 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
person Dale Wijnand    schedule 08.04.2015
comment
В моем случае sbt.version в файле build.properties в каталоге project не был установлен на 0.13.16. После правильной настройки ошибка исчезла. - person user238607; 23.07.2018

С момента появления автоматических подключаемых модулей в 0.13.5, добавление явных файлов .sbt для подключаемых модулей (за исключением особых случаев, когда подключаемый модуль не реализует свойство автоматического подключаемого модуля) не рекомендуется для документация по 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)
person Dexter Legaspi    schedule 24.06.2016

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

можно хоть раз с этим.

person Sandeep Purohit    schedule 24.06.2016

Со мной случилось то же самое. Переместите assembly.sbt из корня в ваш project/ каталог

person farrellw    schedule 17.04.2019

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

person binshi    schedule 23.02.2018
comment
Я получил ту же ошибку, что и Джонатан, и когда я зашел в папку stixloader и запустил команду, она сработала лучше. Однако у меня все еще есть ошибка: download failed: org.slf4j#slf4j-api;1.7.25!slf4j-api.jar. Решение, которое я нашел в Интернете, заключалось в том, чтобы просто запустить команду еще раз. Затем он смог загрузить slf4j и затем приступил к созданию stixloader-1.1.jar. - person Michael Behrens; 06.05.2020

Обычно у вас должен быть plugins.sbt файл на корневом уровне рядом с вашим build.properties, где у вас должно быть следующее:

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.15.0")
person paranza    schedule 01.04.2021

Из Sparkour:

addSbtPlugin ("com.eed3si9n"% "sbt-assembly"% "0.14.4") с assembly.plugin действительно работает

person thebluephantom    schedule 20.01.2018