如何在0.13中声明任务对任务的依赖?

时间:2013-10-10 10:11:47

标签: scala sbt

In sbt 0.12, you could specify that one task depended upon another without actually using the output from the input tasks.所以你纯粹指定了任务的顺序:

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

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

3 个答案:

答案 0 :(得分:13)

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

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

由于bug in scalac,您必须使用虚拟名称,否则您只能使用val _ = ...

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

unitTask := {
  stringTask.value
  sampleTask.value
}

答案 1 :(得分:9)

官方migration guide建议代替:

>>> from collections import OrderedDict
>>> itemList = [1, 2, 0, 1, 3, 2]
>>> itemList[:]=OrderedDict.fromkeys(itemList)
>>> itemList
[1, 2, 0, 3]

将其定义为:

a <<= a dependsOn b

答案 2 :(得分: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)

由于&lt;&lt; =现已弃用,请参阅上面的答案。