如何组织包含大量子模块的SBT?

时间:2015-07-09 06:18:00

标签: sbt

我有一个包含许多子模块的相当大的SBT项目。我的build.sbt非常大,很难导航。是否可以将build.sbt分成几个较小的部分,并在运行SBT作业时将它们“组装”,类似于在Maven中完成的那样?

假设,我有类似的东西:

lazy val commonSettings = Seq(...)

lazy val lib1 = project.in(file(...))...
lazy val lib2 = project.in(file(...))...
lazy val lib3 = project.in(file(...))...
lazy val lib4 = project.in(file(...))...
lazy val foo1 = project.in(file(...))...
lazy val foo2 = project.in(file(...))...
lazy val bar1 = project.in(file(...))...
lazy val bar2 = project.in(file(...))...
lazy val bar3 = project.in(file(...))...

我希望有一个公共build.sbt来定义常见设置,并为libfoobar分隔文件。

这是可能的,如果是的话,怎么样?

1 个答案:

答案 0 :(得分:0)

您可以单独处理每个项目并拥有它自己的build.sbt。然后,您可以使用ProjectRef引用该项目。

我在github创建了一个示例项目。

使用ProjectRef的好处在于您可以使用url构造来定义与其他远程项目(例如,github上的其他项目)的依赖关系。