Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala SBT:如何在子项目中定义子项目的依赖关系&x27;build.sbt文件?_Scala_Build_Sbt_Multi Project_Subproject - Fatal编程技术网

Scala SBT:如何在子项目中定义子项目的依赖关系&x27;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

以下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("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中。