我正在尝试定义自定义任务和现有任务之间的依赖关系(在这种情况下在编译中编译),如下:sbt 文档中的任务依赖关系。但是,我能得到的最接近的是:
object ApplicationBuild extends Build {
val hello = TaskKey[Unit]("hello", "Prints 'Hello World'")
val helloTaskA = hello := {
println("Hello World")
}
val helloTaskB = hello <<= hello.dependsOn(compile in Compile)
val main = play.Project(appName, appVersion, appDependencies).settings(
helloTaskA,
helloTaskB
)
这似乎有效。hello 在执行之前触发编译,如有必要。但是,我不明白为什么我需要在我的设置中同时包含 helloTaskA 和 helloTaskB。如果我没有在设置中包含 helloTaskA,我会得到:
[error] Reference to undefined setting:
[error]
[error] *:hello from *:hello
我知道因为 helloTaskA 是不可变的,所以 helloTaskB 是一个不同的任务,但我认为它会默默地包含 helloTaskA。此外,我不确定为具有相同任务键的任务包含两个设置意味着什么。