Scala SBT:如何将上层目录中的SBT文件包括到my build.SBT中?

Scala SBT:如何将上层目录中的SBT文件包括到my build.SBT中?,scala,sbt,Scala,Sbt,我在一个文件夹中有许多从属sbt项目。它们在Build.sbt中都有相同的值,例如依赖项 我想将相同的值从所有sbt文件移动到单独的文件。但我不想使用多重构建。只需要包含一些来自上层目录的其他sbt文件 例如,我的目录结构可以如下所示: MyRepository |- Dependencies.sbt |- MyProject1 |- src |- Build.sbt |- MyProject2 |- src |- Build.sbt

我在一个文件夹中有许多从属sbt项目。它们在
Build.sbt
中都有相同的值,例如依赖项

我想将相同的值从所有sbt文件移动到单独的文件。但我不想使用多重构建。只需要包含一些来自上层目录的其他sbt文件

例如,我的目录结构可以如下所示:

MyRepository
  |- Dependencies.sbt
  |- MyProject1
      |- src
      |- Build.sbt
  |- MyProject2
      |- src
      |- Build.sbt

在该示例中,如何在
Build.sbt
中包含
Dependencies.sbt

通过在project/中创建一个普通的.scala文件,可以在.sbt文件之间重用代码。project/中的代码可用于.sbt文件

如果我没记错的话,一个.sbt中的定义对于其他.sbt文件是不可见的,至少在旧版本上是如此

基本上,解决方案是使用:
Dependencies.scala
而不是
Dependencies.sbt
,并定义其中的公共部分

检查可以找到的插图

您可以创建project/Dependencies.scala来跟踪一个地方的依赖项

导入sbt_
对象依赖关系{
//版本
lazy val akkaVersion=“2.3.8”
//图书馆
val akkaActor=“com.typesafe.akka”%%“akka actor”%akkaVersion
val akkaCluster=“com.typesafe.akka”%%“akka群集”%akkaVersion
val specs2core=“org.specs2”%%“specs2核心”%%“2.4.17”
//计划
val backendDeps=
Seq(akkaActor,规范2核心%测试)
}
Dependencies
对象将在
build.sbt
中提供。 您需要在
build.sbt
文件中导入依赖项

导入依赖项_
此构建/组织:=“com.example”
此生成/版本:=“0.1.0-快照”
此构建/规模规避:=“2.12.8”
lazy val backend=(文件中的项目(“后端”))
.设置(
名称:=“后端”,
libraryDependencies++=backendDeps
)

所以,我已经查看了SBT的“组织构建”页面。但是,它是关于一个多构建项目的。这样的话(我看到的),我就不能将一个项目与其他项目分开导入和构建。但是我想。所以,对我来说,这种方式是没有用的。另外,如果我们讨论的是Dependencies.scala的解决方案,你可以给我举个例子,当scala文件位于比sbt更高的目录中时,如何在sbt文件中导入scala文件。我的意思是scala文件可能不在类路径中。我不明白为什么对象不在类路径中。如果你有一个例子,我们可以尝试它将更容易检查是什么问题。