應該套用到所有專案的設定可以放在 $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
範例中所示。