1. 全域設定

全域設定 

基本全域組態檔 

應該套用到所有專案的設定可以放在 $HOME/.sbt/1.0/global.sbt (或 $HOME/.sbt/1.0 中任何具有 .sbt 副檔名的檔案)。在 $HOME/.sbt/1.0/plugins/ 中全域定義的外掛程式可供這些設定使用。例如,若要變更專案的預設 shellPrompt

$HOME/.sbt/1.0/global.sbt

shellPrompt := { state =>
  "sbt (%s)> ".format(Project.extract(state).currentProject.id)
}

您也可以在該檔案中設定在 $HOME/.sbt/1.0/plugins/build.sbt 中全域新增的外掛程式 (請參閱下一段),但您需要使用其屬性的完整名稱。例如,對於 sbt-eclipse 外掛程式屬性 withSource,文件記載於 https://github.com/sbt/sbteclipse/wiki/Using-sbteclipse,您需要使用

com.typesafe.sbteclipse.core.EclipsePlugin.EclipseKeys.withSource := true

使用全域外掛程式的全域設定 

$HOME/.sbt/1.0/plugins/ 目錄是一個全域外掛程式專案。這可以用來提供全域命令、外掛程式或其他程式碼。

若要全域新增外掛程式,請建立包含相依性定義的 $HOME/.sbt/1.0/plugins/build.sbt。例如

addSbtPlugin("org.example" % "plugin" % "1.0")

若要使用此方法變更每個專案的預設 shellPrompt,請建立本機外掛程式 $HOME/.sbt/1.0/plugins/ShellPrompt.scala

import sbt._
import Keys._

object ShellPrompt extends AutoPlugin {
  override def trigger = allRequirements

  override def projectSettings = Seq(
    shellPrompt := { state =>
      "sbt (%s)> ".format(Project.extract(state).currentProject.id) }
  )
}

$HOME/.sbt/1.0/plugins/ 目錄是一個完整的專案,會作為每個外掛程式專案的外部相依性包含在內。實際上,此處定義的設定和程式碼,其運作方式如同它們是在專案的 project/ 目錄中定義的一樣。這表示 $HOME/.sbt/1.0/plugins/ 可以用來試驗外掛程式的想法,例如在 shellPrompt 範例中所示。