繁体   English   中英

sbt多模块项目:项目之间的依赖

[英]sbt multi-module project: dependence between projects

我是Scala的新手,所以我希望这个问题不要太幼稚。

假设我有一个多模块的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 projects utils; compile它会事先compile core (并使用其最新版本)?

我问这个问题,因为在实践中我看不到这种行为(并且我想要)。

您正在寻找aggregate方法。 像这样:

lazy val utils = (project in file("utils")).
  settings( ... ).dependsOn(core).aggregate(core)

这里的聚合方法使所有在utils上运行的任务也可以在core上运行(更新等)。 如果要禁用任务在聚合项目上运行,可以在此处查看文档。

是的,您应该会看到这种行为(我在实践中确实会看到)。 如链接文档所述(注意utilcore的作用相反: core取决于util ):

在编译项目时,这还会在项目之间创建顺序。 必须先更新并编译util,然后才能编译内核

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM