多项目sbt构建不遵守依赖项

时间:2018-07-10 14:46:44

标签: scala sbt

我正在尝试创建一个多项目sbt构建。我想在顶层拥有一个根build.sbt,并在每个项目中拥有一个单独的build.sbt,以便顶层包含通用设置,而各个项目build.sbt的文件则是项目特定的。 / p>

从理论上讲,如果sbt正确合并build.sbt文件并确定其范围,这应该是可能的。根据文档,它确实:

摘自https://www.scala-sbt.org/1.x/docs/Multi-Project.html的sbt手册:

  

默认的根项目

     

如果未在构建中的根目录中定义项目,则sbt将创建一个默认项目,该项目将聚合构建中的所有其他项目。

     

因为项目hello-foo是使用base = file(“ foo”)定义的,所以它将包含在子目录foo中。它的源可以直接在foo下,例如foo / Foo.scala,或在foo / src / main / scala中。除构建定义文件外,通常的sbt目录结构都适用于foo。

     

foo中的任何.sbt文件(例如foo / build.sbt)将与整个构建的构建定义合并,但范围仅限于hello-foo项目。

但这对我没有用。 sbt不尊重我项目的dependsOn结构,说找不到依赖项。

我对此的解释是,如果我具有像这样的根级别build.sbt

lazy val common = project.settings(AAA)

如果在普通项目中,我还有另一个build.sbt,如下所示:

lazy val common = (project in file(".")).settings(BBB)

该sbt应合并两个设置AAA和BBB。我在这里误会了吗?

0 个答案:

没有答案