【发布时间】:2013-10-28 11:31:59
【问题描述】:
我一直在尝试查找有关 RootProject 和 ProjectRef 的更多信息,但看起来 sbt 文档中根本没有提到它。
我了解,如果您引用的是根项目,则在引用子项目时应该使用 RootProject 和 ProjectRef。但是,尚不清楚它们之间的行为将有何不同。有人可以帮忙解释一下吗?
还有它没有记录的事实,是否意味着 RootProject 和 ProjectRef 不是引用其他 sbt 项目的推荐方式?
谢谢。
【问题讨论】:
-
你能举个例子来说明你正在尝试做什么吗?也就是说,你为什么要引用另一个项目,引用的是什么类型的项目? (想要这样做也不错——只是寻找上下文。)
-
当然,马克。我有一个项目,其中包含我所有的 DAO 类并处理数据库操作。这个 DAO 项目需要对 Domain Project 中所有域类的引用。同时,我也有一个服务项目,引用了两者。
-
那么,你想让DAO项目依赖Domain Project吗?如scala-sbt.org/release/docs/Getting-Started/… ?
-
是的,这就是定义依赖的方式。那里的示例具有项目结构 hello、hello/foo 和 hello/bar。所示的 Build.scala 在 hello 中,因此它可以使用 Project(...) 引用 hello/foo 和 hello/bar。但是,对于依赖于 hello/bar 的 hello/foo 中的 Build.scala,则不能使用 Project(file("../bar")...),因为 sbt 会抛出错误。引用它的唯一方法是使用 RootProject(file("../bar")...) 或 ProjectRef(file("../bar")...) 之后,当然它只是一个简单的dependsOn(bar) 语句。使用哪个(ProjectRef,RootProject)?
-
你能用这些额外的细节更新问题吗?它可以帮助未来的读者。谢谢!
标签: sbt