繁体   English   中英

在SBT中,如何引用另一个项目的子项目?

[英]In SBT, how to reference a subproject of another project?

在SBT中,可以直接依赖于另一个项目 这样做的好处是,在运行~compile ,对依赖项的更改将导致重新生成。

现在,我想依赖另一个项目的子项目,而不依赖于它的任何同级对象。 因此,例如,我有:

a/
    build.sbt
    b/
        build.sbt
    c/
        build.sbt

d/
    build.sbt

我希望d依赖b 而不依赖c

我在d/build.sbt尝试过

lazy val d = ProjectRef(file("../a"), "b")

lazy val root = project.dependsOn(d)

但这给

Note: Unresolved dependencies path:
    com.foo:a_2.10:1.0
      +- root:root_2.10:1.0

我当然可以

lazy val d = RootProject(file("../a/b"))

除了a/build.sbt可能包含不会以这种方式获取的a/b其他设置。 我需要一个引用,它将引用a/build.sbt但也专门引用a/b

有什么办法可以做这种参考?

对我而言,这只是一个愚蠢的错误。

lazy val root = project

是不正确的。 该行代码在名为root/的目录中创建一个子项目。 引用根项目的正确方法是:

lazy val root = Project(id = "root", base = file("."))

之后,

lazy val d = ProjectRef(file("../a"), "b")

lazy val root = Project(id = "root", base = file(".")).dependsOn(d)

可以正常工作。

暂无
暂无

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

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