11

在 sbt 0.12 中,您可以指定一个任务依赖于另一个任务,而无需实际使用输入任务的输出。因此,您纯粹是在指定任务的顺序:

unitTask <<= Seq(stringTask, sampleTask).dependOn

sbt 0.13 的任务文档中没有这样的示例。指定所述依赖项的新语法是什么?

4

3 回答 3

13

使用标准语法,但忽略所用任务的结果:

unitTask := {
  val x = stringTask.value
  val y = sampleTask.value
  ()
}

由于scalac 中的错误,您必须使用虚拟名称,否则您可以只使用val _ = ....

另外,我更喜欢上面更明确的方式,但它相当于这个较短的版本,因为不使用结果:

unitTask := {
  stringTask.value
  sampleTask.value
}
于 2013-10-10T13:41:42.900 回答
9

官方迁移指南建议不要:

a <<= a dependsOn b

将其定义为:

a := (a dependsOn b).value
于 2017-03-10T03:01:15.283 回答
4

就像你在 0.12 中所做的那样

lazy val taskA= taskKey[Unit]("Prints 'Hello World'")
lazy val taskB= taskKey[Unit]("Prints 'Good by World'")
taskA := println("hello world!")
taskB := println("good by world!")
taskB <<= taskB.dependsOn(taskA)

由于 <<= 现在已弃用,请参阅上面的答案。

于 2013-10-10T11:15:14.963 回答