【发布时间】:2015-04-01 14:45:23
【问题描述】:
说taskA 是一项繁重的任务,只有在启用它并且taskAEnabled 是相应的设置键时才应该调用它。
一种天真的方法是:
val taskAConditional = Def.task {
(taskAEnabled, taskA) map { (taskAEnabled, taskA) =>
if (taskAEnabled) taskA.value
}
}
由于 sbt 设计,这将不起作用。由于 taskA 现在成为 taskAConditional 的依赖项,因此无论 if 逻辑如何都会执行它(即 taskAEnabled 将被忽略)。
有什么方法可以实现我想要的吗? (我无法更改 taskA,因为它是从其他地方导入的)
【问题讨论】: