我一直在尝试找到有关RootProject和ProjectRef的更多信息,但是看起来sbt文档中根本没有提到它。
我了解,如果您引用的是根项目,则在引用子项目时应使用RootProject和ProjectRef。但是,尚不清楚它们之间的行为会有何不同。有人可以帮忙解释一下吗?
还有没有记录的事实,是否意味着不建议使用RootProject和ProjectRef来引用其他sbt项目?
谢谢。
最佳答案
单个sbt构建具有单个project/
目录,用于.scala
构建定义和插件定义。在该内部版本中,可以有多个子项目使用自己的.sbt
文件,但没有他们自己的project/*.scala
文件。
如果要直接包含其他单独的构建而不是使用其发布的二进制文件,则可以使用“源依赖项”。这就是RootProject
和ProjectRef
声明的内容。 ProjectRef
是最通用的:您指定要依赖的构建位置(URI)和构建中项目的ID(字符串)。 RootProject
是一种便利,它可以在您指定的URI上为构建选择根项目。
源依赖项确实有开销:启动时间,内存使用率和命令行可用性。如果项目组不需要分开,那么最好对标准子项目使用单个构建。
关于sbt - RootProject和ProjectRef,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19469708/