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

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

还有没有记录的事实,是否意味着不建议使用RootProject和ProjectRef来引用其他sbt项目?

谢谢。

最佳答案

单个sbt构建具有单个project/目录,用于.scala构建定义和插件定义。在该内部版本中,可以有多个子项目使用自己的.sbt文件,但没有他们自己的project/*.scala文件。

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

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

关于sbt - RootProject和ProjectRef,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19469708/

10-10 09:10