Warm tip: This article is reproduced from serverfault.com, please click

scala-SBT嵌套的DependOn

(scala - Sbt nested dependsOn)

发布于 2020-12-03 15:44:06

我有一个依赖于subproject1的根项目。而subproject1取决于subproject2。这是否意味着我可以直接在root用户中使用subproject2的源代码?

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

lazy val sub1 =
  Project(id = "sub1").dependsOn(sub2)

lazy val sub2 =
  Project(id = "sub2")
Questioner
Helix112
Viewed
0
Dmytro Mitin 2020-12-03 23:52:39

是的。

这很容易检查。

build.sbt

name := "sbtdemo"

version := "0.1"

ThisBuild / scalaVersion := "2.13.4"

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

lazy val sub1 =
  Project(id = "sub1", base = file("sub1")).dependsOn(sub2)

lazy val sub2 =
  Project(id = "sub2", base = file("sub2"))

sub2 / src / main / scala / App.scala

object App {
  def foo() = println("foo")
}

src / main / scala / Main.scala

object Main {
  def main(args: Array[String]): Unit = {
    App.foo() // foo
  }
}