“为什么?”;sbt阶段“;没有有效的命令而失败?

“为什么?”;sbt阶段“;没有有效的命令而失败?,sbt,sbt-native-packager,Sbt,Sbt Native Packager,当我尝试使用sbt clean compile 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 clean compile 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——以前有人见过吗?我读过,但我不在Heroku上。谢谢。

经过大量挖掘,我发现“stage”是由来自的插件实现的,我在我的其他项目中使用了该插件,并解释了sbt接受stage命令的原因。

在我意识到您只想使用
stage
命令,而不需要将整个Play foo带入之后

stage
命令是其中的一部分:

该插件的目标是能够将使用SBT构建的Scala软件捆绑到本机打包系统中,如deb、rpm、homebrew和msi

sbt native packager插件的一个特性是

只需将以下内容添加到
project/plugins.sbt
中,即可在项目中使用该插件(在示例使用autoplugin功能之后):

您还必须将以下内容添加到
build.sbt

enablePlugins(JavaAppPackaging)
就这样!你都准备好了

执行
阶段

> 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

这是否意味着您没有正确设置项目,即
project/plugins.sbt
没有
addSbtPlugin(“com.typesafe.play“%”sbt plugin“%”2.3.5”)
?正确。我只是不想把整个Play框架带到另一个应用程序中,这是一个没有HTTP接口的后端服务。该插件通过额外的任务和设置改变sbt本身,除非您没有在应用程序中明确使用它,否则它们不会出现在任何地方。或者使用sbt 0.13.5和sbt native packager 1.0.0-M1在野外散步,只需:
enablePlugins(JavaServerAppPackaging)
Whoohoo!我会说“终于”!
enablePlugins
不是0.13.6的一部分吗?看来这已经是0.13.5的一部分了。但是这并不重要,因为0.13.5和0.13.6应该是兼容的更新版!谢谢@MukiThis看起来很有希望,但我不相信它等同于Play框架附带的sbt stage插件,它不是一个操作系统包,而是一个包含所有依赖项的uberjar,这才是我真正需要的。
enablePlugins(JavaAppPackaging)
> 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