在构建定义中一次定义多个模块

Defining multiple modules at once in the build definition

我有一个构建设置,其中有多组依赖模块。我写了一个生成一组模块的函数:

def group(id: String) = {
  val module1 = project.in(s"core/$id")...
  val module2 = project.in(s"impl/$id").dependsOn(module1)...
  (module1, module2)
}

我现在要声明它们:

val (core2014, impl2014) = group("2014")

这似乎不适用于 build.sbt:

Pattern matching in val statements is not supported

我尝试将它移动到 project/build.scala,在那里它编译得很好,但是模块没有出现在 SBT 提示符中。 (也就是说,键入 core2014/compile 会得到 not a valid key。)

有什么方法可以将模块添加到构建中 "manually",而不是依赖 SBT 的自动检测?

我猜 build.sbt 的答案是 "no"。

但是您可以在 project/Build.scala

中重新定义 projects