2014-10-07 40 views
1

我有一个任务必须依次调用其他任务。如何指定依赖任务的顺序?

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 := { 
    ... 
} 

其结果是,虽然taskBtaskCtaskDtaskA之前确实叫,我似乎无法找到一个方法来控制它们的顺序,即taskD可以taskC之前被调用。

如何指定运行顺序?

回答

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),