【发布时间】:2012-04-18 20:59:13
【问题描述】:
在我的 build.sbt 文件中,我有两个自定义任务:
TaskKey[Unit]("aaa") := {
println("aaa")
}
TaskKey[Unit]("bbb") := {
println("bbb")
}
如何在它们之间添加依赖关系?例如,我希望aaa 依赖于bbb。
【问题讨论】:
标签: scala build dependencies sbt
在我的 build.sbt 文件中,我有两个自定义任务:
TaskKey[Unit]("aaa") := {
println("aaa")
}
TaskKey[Unit]("bbb") := {
println("bbb")
}
如何在它们之间添加依赖关系?例如,我希望aaa 依赖于bbb。
【问题讨论】:
标签: scala build dependencies sbt
来自https://github.com/harrah/xsbt/wiki/Tasks
要依赖某些任务的副作用而不使用它们的值并且不做额外的工作,请对一系列任务使用dependOn。定义任务键(
unitTask <<= Seq(stringTask, sampleTask).dependOn
要向现有任务添加依赖项而不使用它们的值,请在任务上调用 dependsOn 并提供要依赖的任务。比如这里的第二个任务定义修改了原来的要求 string-task 和 sample-task 先运行:
intTask := 4
intTask <<= intTask.dependsOn(stringTask, sampleTask)
【讨论】:
error: not found: value intTask intTask := 4
val aaa = TaskKey[Unit]("aaa", "First")
val bbb = TaskKey[Unit]("bbb", "Second")
bbb := { println("bbb") }
aaa := bbb map { _ => println("aaa") }
【讨论】:
illegal start of simple expression val aaa = TaskKeyUnit