RootProject和ProjectRef

时间:2013-10-19 18:47:18

标签: sbt

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

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

此外,它没有记录,这是否意味着RootProject和ProjectRef不是推荐的引用其他sbt项目的方式?

感谢。

1 个答案:

答案 0 :(得分:18)

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

如果要直接包含其他单独的构建而不是使用其已发布的二进制文件,则使用“源依赖项”。这是RootProjectProjectRef声明的内容。 ProjectRef是最常用的:您指定构建的位置(URI)以及要依赖的构建(字符串)中项目的ID。 RootProject是一种便利,可以在您指定的URI中为构建选择根项目。

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