2014-01-15 66 views
3

只在命令行中獲取應用程序名稱和版本根據this nice trick我設置版本,並在控制檯命令play normalized-name version後得到像如何玩2.1

[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 

輸出反正部署自動化我需要只能得到像myapp-1.2.3或至少只值myapp1.2.3(沒有正在加載信息[信息]前綴)我怎麼能這樣做?

+0

我不認爲你可以輕鬆禁用前綴和日誌記錄信息。我將使用shell腳本從輸出中提取名稱和版本。 – Kapep

+1

@kapep Thx的信息,恐怕不會工作,尤其是當用於許多實例/應用程序。現在,我發現'myapp-1.2.3.zip'是'dist'中的唯一文件,所以我可以使用它進行進一步處理,無論如何,從播放控制檯獲取其他數據會很好:) – biesior

回答

3

我使用SBT 0.13 that's only available since Play 2.2所以你的里程可能會有所不同。

build.sbt定義打印出version設置的任務。

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

showVersion := { 
    println(version.value) 
} 

調整它包括像normalizedName(又名normalized-name)其他設置。

隨着showVersion任務,運行以下命令來獲取版本:

$ play --error 'set showSuccess := false' showVersion 
0.1-SNAPSHOT 

您可能需要添加showSuccess := falsebuild.sbt使命令更短 - 見How to turn off info and success messages in sbt?

+0

Thx,I在我們準備好切換項目里程碑時,需要牢記您的答案! – biesior

+0

你要我降級到SBT 0.12/Play 2.1還是你自己做?提示,提示:接受答案:) –

+0

Och不,不,我會在這裏檢查,dzięki;) – biesior