我是Scala的新手,所以我希望这个问题不太天真。
假设我有一个multi-module sbt-project并且项目之间存在依赖关系。
lazy val core = (project in file("core")).
settings( ... )
lazy val utils = (project in file("utils")).
settings( ... ).dependsOn(core)
问题是.dependsOn(core)
是否意味着,如果我projects utils; compile
,它会事先compile
core
(并使用其最新版本)?
我问这个,因为在实践中我没有看到这种行为(我想要它)。
答案 0 :(得分:2)
您正在寻找aggregate
方法。像这样:
lazy val utils = (project in file("utils")).
settings( ... ).dependsOn(core).aggregate(core)
此处的聚合方法会导致utils
上运行的所有任务也在core
上运行(更新等等)。如果要禁止在聚合项目上运行任务,可以查看the documentation here
答案 1 :(得分:2)
是的,你应该看到这种行为(我确实在实践中看到了它)。正如链接文档所述(请注意util
和core
的角色相反:core
取决于util
):
这也会在编译项目时创建项目之间的顺序;必须在编译核心之前更新和编译util