在build.sbt中添加根模块有什么好处吗?

在build.sbt中添加根模块有什么好处吗?,sbt,multi-module,Sbt,Multi Module,我有多模块sbt项目: ├── build.sbt ├── bar │   ├── build.sbt │   └── ... ├── foo │   ├── build.sbt │   └── ... └── ... 和2个版本的build.sbt: 第二版: lazy val foo = project in(file("./foo")) lazy val bar = project in(file("./bar")) lazy val root = Project(id = "root

我有多模块sbt项目:

├── build.sbt
├── bar
│   ├── build.sbt
│   └── ...
├── foo
│   ├── build.sbt
│   └── ...
└── ...
和2个版本的build.sbt:

第二版:

lazy val foo = project in(file("./foo"))
lazy val bar = project in(file("./bar"))

lazy val root = Project(id = "root",
  base = file(".")) aggregate(foo, bar)

这些版本之间有什么区别?第二个版本有什么优点吗?

第二个版本在sbt命令行加载了类型项目,您应该看到其中有三个。前面有一颗星星的是默认项目。它将是您的根项目。您键入的命令将应用于它。由于它是一个聚合项目,因此命令将依次应用于foo和bar


package是一个很好的示例命令—键入它应该生成一个jar文件,其中包含foo和bar类,如果您需要的话

我认为这两个版本只适用于顶级build.sbt,这个问题可以在不参考它们的情况下回答。
lazy val foo = project in(file("./foo"))
lazy val bar = project in(file("./bar"))

lazy val root = Project(id = "root",
  base = file(".")) aggregate(foo, bar)