Freewind @ Thoughtworks scala java javascript dart 工具 编程实践 月结 math python english [comments admin] [feed]

(2014-09-13) sbt多个子项目的build.sbt是如何处理的

广告: 云梯:翻墙vpn (省10元) 土行孙:科研用户翻墙http proxy (有优惠)

我们可以在一个sbt项目中定义多个子项目,通常每个子项目都有自己独立的目录。如果每个子项目都有自己的build.sbt,它们是如何处理的呢?

目录结构

multi
├── build.sbt
├── core
│   └── build.sbt
└── util
    └── build.sbt

可以看到,我在multi下,又定义了两个子目录coreutil,并且每个下面还有一个build.sbt.

multi/build.sbt

name := "multi"

version := "0.1.0"

lazy val core = project

lazy val util = project

multi/core/build.sbt

name := "core"

version := "0.2.0"

multi/util/build.sbt

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

可以看到,两个子项目coreutil中的build.sbt中的内容,被合并到根项目multi中了,所以在我们显示一个key的时候,它会把每个子项目中相应的key的值都打印出来。

comments powered by Disqus