如何指定依赖任务的顺序?

时间:2014-10-07 13:38:44

标签: sbt

我的任务必须按顺序调用其他任务。

val taskA = taskDef[Unit]("....")
val taskB = taskDef[Unit]("....")
val taskC = taskDef[Unit]("....")
val taskD = taskDef[Unit]("....")

taskA := {
    taskB.value
    taskC.value
    taskD.value
}

taskB := {
    ...
}

taskC := {
    ...
}

taskD := {
    ...
}

结果是虽然在taskB之前确实调用了taskCtaskDtaskA,但我似乎无法找到控制其顺序的方法,即taskD之前可以调用taskC

如何指定运行顺序?

1 个答案:

答案 0 :(得分:2)

解决方案是使用与dependsOn结合的设置的<<=方法:

val taskA = taskDef[Unit]("....")
val taskB = taskDef[Unit]("....")
val taskC = taskDef[Unit]("....")
val taskD = taskDef[Unit]("....")

taskA := {},

taskB := {
    ...
},

taskC := {
    ...
},

taskD := {
    ...
},
taskA <<= taskA.dependsOn(taskD),

taskD <<= taskA.dependsOn(taskC),

taskC <<= taskA.dependsOn(taskB),