SBT 0.11 InputKey取决于其他任务

时间:2012-01-17 09:54:37

标签: scala sbt

0.7.x中,我们使用dependsOn来声明任务依赖于其他任务 - 这意味着必须先执行其他任务。

0.11.x中,我们使用<<=来声明任务取决于其他任务。 SBT wiki在很多方面说明了如何声明TaskKey[_],这取决于其他任务和设置(这里有一些问题涉及that),但InputKey[_]上的问题并不多。如果我有一个声明如下的输入键:

val benchTask = InputKey[Unit](
  "bench",
  "Runs a specified benchmark."
) <<= inputTask {
  (argTask: TaskKey[Seq[String]]) =>
  argTask map {
    args =>
    // ...
  } // xxx
}

如何让它依赖于其他任务,例如packageBin in Test?我可以将dependsOn代替上面的xxx评论,但这会给我类型错误。

谢谢。

1 个答案:

答案 0 :(得分:6)

将您的其他任务与argTask一起映射:

inputTask {
  (argTask: TaskKey[Seq[String]]) =>
  (argTask, packageBin in Test) map {
    (args, pb) =>
    // ...
  }
}