2

我正在尝试定义自定义任务和现有任务之间的依赖关系(在这种情况下在编译中编译),如下: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。此外,我不确定为具有相同任务键的任务包含两个设置意味着什么。

4

0 回答 0