[英]SBT: How to include sbt files in upper directory to my build.sbt?
我在一個文件夾中有許多相關的sbt項目。 它們在Build.sbt
都具有相同的值,例如依賴關系。
我想將相同的值從所有sbt文件移至單獨的文件。 但是不想使用multibuild。 只需要包括上層目錄中的其他一些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以便在一處跟蹤依賴關系。
import sbt._
object Dependencies {
// Versions
lazy val akkaVersion = "2.3.8"
// Libraries
val akkaActor = "com.typesafe.akka" %% "akka-actor" % akkaVersion
val akkaCluster = "com.typesafe.akka" %% "akka-cluster" % akkaVersion
val specs2core = "org.specs2" %% "specs2-core" % "2.4.17"
// Projects
val backendDeps =
Seq(akkaActor, specs2core % Test)
}
Dependencies
對象將在build.sbt
可用。 您需要在build.sbt
文件中import Dependencies._
。
import Dependencies._
ThisBuild / organization := "com.example"
ThisBuild / version := "0.1.0-SNAPSHOT"
ThisBuild / scalaVersion := "2.12.8"
lazy val backend = (project in file("backend"))
.settings(
name := "backend",
libraryDependencies ++= backendDeps
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.