RootProject和ProjectRef

sur*_*nto 22 sbt

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

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

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

谢谢.

Mar*_*rah 18

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

如果要直接包含其他单独的构建而不是使用其已发布的二进制文件,则使用"源依赖项".这是什么RootProjectProjectRef声明. ProjectRef是最通用的:您指定构建的位置(URI)和要依赖的构建(String)中项目的ID. RootProject是一种便利,可以在您指定的URI中为构建选择根项目.

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

  • Mark,你能否扩展为什么源依赖有更多开销?我很好奇我们可以期望他们增加多少开销.命令行可用性会出现哪些类型的问题? (5认同)