在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成功运行后发生。
答案 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
。