我正在阅读 sbt 文档,我在多项目构建部分遇到了这个示例:
import sbt._
import Keys._
object HelloBuild extends Build {
lazy val root = Project(id = "hello",
base = file(".")) aggregate(foo, bar)
lazy val foo = Project(id = "hello-foo",
base = file("foo"))
lazy val bar = Project(id = "hello-bar",
base = file("bar"))
}
我想知道如何在声明 foo 和 bar 之前引用它们?我认为这与lazy 关键字有关,但是从我的阅读中,我认为lazy 关键字只是延迟了初始化?在这里似乎这些值甚至在声明之前就在范围内,更不用说初始化了......
希望有人能够解释这里发生了什么!