24

我一直在尝试查找有关 RootProject 和 ProjectRef 的更多信息,但看起来在 sbt 文档中根本没有提到它。

我了解,如果您引用的是根项目,则在引用子项目时应该使用 RootProject 和 ProjectRef。但是,尚不清楚它们之间的行为将有何不同。有人可以帮忙解释一下吗?

还有它没有记录的事实,这是否意味着 RootProject 和 ProjectRef 不是参考其他 sbt 项目的推荐方式?

谢谢。

4

1 回答 1

19

单个 sbt 构建具有用于构建定义和插件定义的单个project/目录。.scala该构建中可以有多个子项目,它们有自己的.sbt文件,但不能有自己的project/*.scala文件。

当您想直接包含其他单独的构建而不是使用它们发布的二进制文件时,您可以使用“源依赖项”。这是什么RootProjectProjectRef声明。 ProjectRef是最通用的:您指定构建的位置(URI)和您想要依赖的构建(字符串)中项目的 ID。 RootProject是一种便利,可以在您指定的 URI 处选择构建的根项目。

源依赖确实有开销:启动时间、内存使用和命令行可用性。如果项目组不需要分开,最好使用带有标准子项目的单个构建。

于 2013-10-28T13:08:43.483 回答