2017-04-11 73 views
13

我想通過將兩步合一來優化sbt程序集/程序包操作。 兩個步驟是:如何以交互模式運行sbt multiple命令作爲一個命令?

$ sbt 
> project XXX 
.... 
> assembly 
Ctrl + c to exit 

此外,assembly是一個任務形式脂肪罐子SBT插件。
我嘗試用sbt project analysis assembly但不works.A錯誤的邂逅:

[error] Not a valid command: analysis (similar: alias) 
[error] Not a valid key: analysis (similar: readAnalysis, mainClass, less) 
[error] analysis 
[error]  ^

如何實現這個感謝

+1

'analysis'不是SBT命令(除非你定義或導入)。你希望它成爲'project'命令的參數,對吧? Sbt無法閱讀你的想法,所以你需要幫助它:'sbt「項目分析」程序集「。希望它有效,另見http://www.scala-sbt.org/0.13/docs/Howto-Running-Commands.html#Pass+arguments+to+a+command+or+task+in+batch+mode –

+0

謝謝,'sbt「項目分析」程序集「工作。'分析'關鍵字是我的項目名稱我只是不知道如何切換項目與一行cmd。你能回答嗎? – LoranceChen

+0

重複的問題沒有回答標題中的實際問題:以交互模式運行多個命令。下面的答案是[@Justin Kaeser](https://stackoverflow.com/a/43342323/1206998)。 –

回答

21

內SBT外殼,使用;到鏈命令:

;project XXX; assembly 

從命令行調用時,用引號括起單個命令:

sbt "project XXX" assembly 

或用引號括整個鏈條:

sbt ";project XXX; assembly" 

從另一個項目在外殼的情況下執行任務的子項目XXX

XXX/assembly 
+0

我已經問過關於在sbt shell中運行幾個命令的更多精度問題。我複製了你的答案,但你得到信用是公平的。如果你添加上面的答案,或者只是複製我的改編版本,我將刪除我的 –

+1

謝謝,我在那裏添加了一個答案;) –