2014-10-23 6 views
5

Я получаю ошибки, когда я пытаюсь поставить мое приложение с помощью sbt clean compile stage:Почему «sbt stage» не работает с недействительной командой?

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

Я делал это сотни раз на других машинах без проблем. У меня есть SBT 0.13.5 - кто-нибудь видел это раньше? Я прочитал this other post, но я не на Хереку. Благодарю.

ответ

10

После the comments above я понял, что вы просто хотели бы иметь stage команду, не доводя всю пьесу Foo в

Команда stage является частью sbt-native-packager, что:.

The цели [из плагин], чтобы иметь возможность связывать программное обеспечение Scala, созданное с помощью SBT для собственных упаковочных систем, таких как deb, rpm, homebrew, msi.

Одной из особенностей SBT-нативной Упаковщик, плагин the stage command что

> help stage 
Create a local directory with all the files laid out as they would be in the final distribution. 

Просто добавьте следующие строки в project/plugins.sbt иметь плагин доступный в проекте (после того, как the comment of Muki пример использует the latest version 1.0.0-M1 с функция автозагрузки плагинов):

addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.0.0-M1") 

Вы также должны добавить следующее build.sbt:

enablePlugins(JavaAppPackaging) 

И все! Теперь все готово.

Выполнение stage.

> stage 
[info] Packaging /Users/jacek/dev/sandbox/command-build-scala/target/scala-2.10/command-build-scala_2.10-0.1-SNAPSHOT-sources.jar ... 
[info] Done packaging. 
[info] Updating {file:/Users/jacek/dev/sandbox/command-build-scala/}command-build-scala... 
[info] Wrote /Users/jacek/dev/sandbox/command-build-scala/target/scala-2.10/command-build-scala_2.10-0.1-SNAPSHOT.pom 
[info] Resolving org.fusesource.jansi#jansi;1.4 ... 
[info] Done updating. 
[info] Packaging /Users/jacek/dev/sandbox/command-build-scala/target/scala-2.10/command-build-scala_2.10-0.1-SNAPSHOT-javadoc.jar ... 
[info] Done packaging. 
[info] Packaging /Users/jacek/dev/sandbox/command-build-scala/target/scala-2.10/command-build-scala_2.10-0.1-SNAPSHOT.jar ... 
[info] Done packaging. 
[success] Total time: 0 s, completed Nov 5, 2014 2:55:55 PM 
+1

Или прогуляйтесь по дикой стороне, используя sbt 0.13.5 и sbt-native-packager 1.0.0-M1 и просто: 'enablePlugins (JavaServerAppPackaging)' – Muki

+0

Whoohoo! Я бы сказал «Наконец-то»! Разве это не 'enablePlugins' часть 0.13.6? –

+0

AFAIK это уже часть 0.13.5. Однако это не должно иметь значения, поскольку 0,13,5 и 0,13,6 должны быть совместимы – Muki

0

После многих копаний я узнал, что «сцена» реализована плагином от Play framework, который я использую в других моих проектах, и объясняет, почему sbt принимал команду этапа.

+0

Означает ли это, что вы не создали проект должным образом, то есть 'проект/plugins.sbt' без' addSbtPlugin ("com.typesafe.play" % "SBT-плагин" % «2.3.5 «)'? –

+0

Исправить. Я просто не хочу приводить всю платформу Play в это другое приложение, которое является бэкэнд-сервисом без интерфейса HTTP. – Raidex

+0

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

Смежные вопросы