9

当我尝试使用以下方式暂存我的应用程序时出现错误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 上。谢谢。

4

2 回答 2

18

上面的评论之后,我意识到你只是想拥有stage命令而不把整个 Play foo带进来。

stage命令是sbt-native-packager的一部分:

[插件] 的目标是能够捆绑使用 SBT 构建的 Scala 软件,用于原生打包系统,如 deb、rpm、homebrew、msi。

sbt-native-packager 插件的功能之一是stage命令

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

只需添加以下内容即可project/plugins.sbt使该插件在项目中可用(在Muki 的注释之后,该示例使用具有自动插件功能的最新版本 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
于 2014-10-24T06:52:10.177 回答
0

经过大量挖掘,我发现“stage”是由Play framework中的一个插件实现的,我在其他项目中确实使用过这个插件,并解释了为什么 sbt 接受 stage 命令。

于 2014-10-23T19:37:37.870 回答