一段时间以来,我一直在寻找这是否可行,但收效甚微。
使用 SBT,您能否以编程方式创建子项目,而无需将每个项目明确分配给它自己的项目val?
我当前的项目结构如下所示:
root/
common/ <--- This is another sub-project that others dependOn
project/
build.scala
src/main/scala
apps/ <--- sub-projects live here
Sub1/
Sub2/
Run Code Online (Sandbox Code Playgroud)
Sub1并且Sub2都是他们自己的 SBT 项目。
我第一次尝试将这些项目联系在一起是这样的:
// root/project/build.scala
import sbt._
import Keys._
object build extends Build {
lazy val common = project /* Pseudo-code */
val names = List("Sub1", "Sub2")
lazy val deps = names map { name =>
Project(id = name, base = file(s"apps/$name")).dependsOn(common)
}
lazy val finalDeps = common :: deps …Run Code Online (Sandbox Code Playgroud)