我正在尝试在sbt文档中定义自定义任务和现有任务(在本例中为Compile编译)之间的依赖关系:Task Dependencies。但是,我能得到的最接近的是:
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。此外,我不确定如何为具有相同任务键的任务包含两个设置意味着什么。