Scala SBT:如何在子项目中定义子项目的依赖关系&x27;build.sbt文件?
以下build.sbt文件起作用,但它定义了所有子项目的依赖关系:Scala SBT:如何在子项目中定义子项目的依赖关系&x27;build.sbt文件?,scala,build,sbt,multi-project,subproject,Scala,Build,Sbt,Multi Project,Subproject,以下build.sbt文件起作用,但它定义了所有子项目的依赖关系: name := "myproject" version := "1.0" scalaVersion := "2.11.8" libraryDependencies ++= Seq( "org.scalafx" %% "scalafx" % "8.0.60-R9" ) lazy val aLib = (project in file("lib/a")) lazy val bLib = (project in file
name := "myproject"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies ++= Seq(
"org.scalafx" %% "scalafx" % "8.0.60-R9"
)
lazy val aLib = (project in file("lib/a"))
lazy val bLib = (project in file("lib/b"))
.dependsOn(aLib)
.dependsOn(cLib)
lazy val cLib = (project in file("lib/c"))
.dependsOn(aLib)
lazy val myApp = (project in file("myapp"))
.dependsOn(aLib)
.dependsOn(bLib)
.dependsOn(cLib)
.aggregate(aLib, bLib, cLib)
由于每个子项目(目录lib/a、lib/b、lib/c、myapp)都有自己的build.sbt文件,因此我想使用这些构建文件来定义每个项目的各个依赖项
我试图将
dependsOn
/aggregate
语句移动到子项目的构建文件中,但我无法使其以这种方式工作。推荐的方法是什么?推荐的方法是在子目录中不包含build.sbt文件。@DaleWijnand您能提供一个sbt文档的参考或其他支持您声明的内容吗?我不确定中是否有明确说明,但我可以从听到的bug中告诉您这是推荐的情况,多嵌套build.sbt文件中的边缘事例和不支持事例。@DaleWijnand:“建议不要在子目录中有build.sbt文件”。如果删除子项目的build.sbt文件之一,超级项目将不再编译(因为子项目的Scala版本未定义)。因此,这不是推荐的方法…转换需要的不仅仅是删除文件-您必须将这些子项目的内容(以及构建的定义)迁移到root build.sbt中。