如何用 SBT 优雅地组合两个任务?

How to elegantly compose two tasks with SBT?

我想转换这个 bash 表达式:

$ 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

有什么想法吗?

使用命令别名:

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

使用sequential task

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

穿着定制的英伦西装,开着阿斯顿·马丁的乡间小路,更显优雅。