SBT完成取决于多项任务

时间:2018-03-20 23:02:39

标签: scala sbt

在SBT中,如果我想在编译之前执行我的Task Foo,我可以做

(Compile / compile) := ((Compile / compile) dependsOn Foo).value

但是,如果我希望编译依赖于3个任务而不是1,那该怎么办?(Foo Bar Baz)?

我试过

(Compile / compile) : ((Compile / compile) dependsOn Foo, Bar, Baz).value

但上面没有工作

如何设置对多个任务的依赖性。 Foo,Bar和Baz是独立的,如果可能的话它们可以并行运行。唯一的要求是编译应该在Foo,Bar,Baz成功运行后发生。

1 个答案:

答案 0 :(得分:1)

dependsOn采用变量参数,因此您可以将多个任务传递给它。问题只在于错误的语法。以下是解决方法:

Compile/compile := (Compile/compile).dependsOn(Foo, Bar, Baz).value

这在Scala中很常见,您可以调用任何方法foo.method(arg)foo method arg。你仍然可以使用第二种形式,但是你应该写Compile/compile dependsOn (Foo, Bar, Baz),这并没有太大的区别,但可能需要添加括号来调用value