2015-06-15 26 views
3

我想這個bash的表達式轉換:如何用SBT優雅地組合兩項任務?

$ sbt clean lint 

成一個漂亮的build.sbt表達類似:

precommit := clean <> lint 

,這樣我可以運行下面的bash的表達式:

$ sbt precommit 

例如,這或多或少地與Makefile配合使用:

lint: 
    echo linting 
    touch foo.txt 

clean: 
    echo cleaning 
    rm -f foo.txt 

precommit: clean lint 

的Makefile文件可以使用,如:

$ make precommit 
echo cleaning 
cleaning 
rm -f foo.txt 
echo linting 
linting 
touch foo.txt 

任何想法?

回答

7

使用sequential task

precommit := Def.sequential(clean, lint).value 

而穿着定製西裝的英國,爲了增加一個優雅的鄉村公路上駕駛的阿斯頓·馬丁。

+0

在sbt 0.13。*的所有版本中都能正常工作。 – marios

+0

不,這是sbt 0.13.8的新功能。 –

+0

很酷。感謝您的加入!在其他任務中並行執行任務總是使序列內容變得非常棘手。 – marios

3

使用命令別名:

addCommandAlias("precommit", ";clean;lint") 
+0

它的作品,但它是優雅的?你能使它優雅嗎? –

+0

如果你不需要中間命令的輸出,那麼我真的不知道如何讓這個@Dale所具有的更優雅。 – marios

+0

它不是優雅的,因爲它是「字符串」 –