我有一个依赖于子项目1的根项目。子项目1依赖于子项目2。这是否意味着我可以直接在根目录中使用子项目2的源代码?
lazy val root =
Project(id = "root", base = file(".")).dependsOn(sub1)
lazy val sub1 =
Project(id = "sub1").dependsOn(sub2)
lazy val sub2 =
Project(id = "sub2")
是
这很容易检查。
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
}
}
是。根据sbt:的Classpath依赖项
lazy val core = project.dependsOn(util)
现在核心中的代码可以使用util中的类。这也在编译项目时创建了项目之间的排序;必须先更新和编译util,然后才能编译core。