如何在 Play 2.1 中仅通过命令行获取应用程序名称和版本

bie*_*ior 4 sbt playframework playframework-2.1

根据这个不错的技巧,我正在设置版本,并play normalized-name version在控制台中执行命令后获得如下输出

[info] Loading project definition from /www/apps/MyApp/project
[info] Set current project to MyApp (in build file:/www/apps/MyApp/)
[info] myapp
[info] 1.2.3
Run Code Online (Sandbox Code Playgroud)

无论如何,对于部署自动化,我只需要获取连接值,例如myapp-1.2.3或至少仅获取值myapp,并且1.2.3(不加载信息[info]前缀)我该怎么做?

Jac*_*ski 5

我使用的是 SBT 0.13,该版本仅自 Play 2.2 起可用,因此您的情况可能会有所不同。

定义build.sbt一个打印设置的任务version

lazy val showVersion = taskKey[Unit]("Show version")

showVersion := {
  println(version.value)
}
Run Code Online (Sandbox Code Playgroud)

调整它以包含其他设置,例如normalizedName(又名normalized-name)。

通过该showVersion任务,运行以下命令来获取版本:

$ play --error 'set showSuccess := false' showVersion
0.1-SNAPSHOT
Run Code Online (Sandbox Code Playgroud)

您可能想要添加showSuccess := falsetobuild.sbt以使命令更短 - 请参阅如何关闭 sbt 中的信息和成功消息?