我一直在尝试查找有关RootProject和ProjectRef的更多信息,但看起来在sbt文档中根本没有提到。
据我所知,如果您正在引用根项目,则在引用子项目时应使用RootProject和ProjectRef。然而,目前尚不清楚它们之间的行为将如何不同。有人可以帮忙解释一下吗?
此外,它没有记录,这是否意味着RootProject和ProjectRef不是推荐的引用其他sbt项目的方式?
感谢。
答案 0 :(得分:18)
单个sbt构建具有project/
构建定义和插件定义的单个.scala
目录。该版本中可能有多个子项目有自己的.sbt
文件,但不是他们自己的project/*.scala
文件。
如果要直接包含其他单独的构建而不是使用其已发布的二进制文件,则使用“源依赖项”。这是RootProject
和ProjectRef
声明的内容。 ProjectRef
是最常用的:您指定构建的位置(URI)以及要依赖的构建(字符串)中项目的ID。 RootProject
是一种便利,可以在您指定的URI中为构建选择根项目。
源依赖项确实存在开销:启动时间,内存使用情况和命令行可用性。如果项目组不需要分开,最好使用标准子项目的单个构建。