我们可以在一个sbt项目中定义多个子项目,通常每个子项目都有自己独立的目录。如果每个子项目都有自己的build.sbt
,它们是如何处理的呢?
multi
├── build.sbt
├── core
│ └── build.sbt
└── util
└── build.sbt
可以看到,我在multi
下,又定义了两个子目录core
和util
,并且每个下面还有一个build.sbt
.
name := "multi"
version := "0.1.0"
lazy val core = project
lazy val util = project
name := "core"
version := "0.2.0"
name := "build"
version := "0.3.0"
$ sbt
> projects
[info] In file:/sbttest/multi/
[info] core
[info] * multi
[info] util
> version
[info] util/*:version
[info] 0.3.0
[info] core/*:version
[info] 0.2.0
[info] multi/*:version
[info] 0.1.0
> name
[info] util/*:name
[info] util
[info] core/*:name
[info] core
[info] multi/*:name
[info] multi
可以看到,两个子项目core
和util
中的build.sbt
中的内容,被合并到根项目multi
中了,所以在我们显示一个key的时候,它会把每个子项目中相应的key的值都打印出来。