Существует разница между собственно SBT и плагином SBT. Play Framework - это плагин SBT . Версия SBT указана в project/build.properties
:
sbt.version=0.13.15
, в то время как версия плагина Play SBT указана в project/plugins.sbt
:
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.6.12")
Плагин Scala Play SBT (PlayScala
) включен в build.sbt
примерно так:
lazy val root = (project in file(".")).enablePlugins(PlayScala)
Плагины SBT обогащают определения сборки дополнительными полезными задачами, командами, настройками и зависимостями. Вот несколько примеров из Play SBT plugin :
object PlayKeys {
val playDefaultPort = SettingKey[Int]("playDefaultPort", "The default port that Play runs on")
val playDefaultAddress = SettingKey[String]("playDefaultAddress", "The default address that Play runs on")
val playRunHooks = TaskKey[Seq[PlayRunHook]]("playRunHooks", "Hooks to run additional behaviour before/after the run task")
...
Так, например, чтобы изменить порт по умолчанию, на котором работает Play, мы можем определить в build.sbt
:
PlayKeys.playDefaultPort := 9009
Обратите внимание, что при обновлении версии SBT мы должны убедиться, что она совместима с соответствующим плагином Play SBT. Например, , чтобы использовать Play с SBT 1, нам нужно обновить Play sbt-plugin
до 2.6.6
.
Лучшая практика плагина SBT Соглашение об именовании артефактов поддерживает следующую схему именования:
sbt-$projectname
Например, sbt-scoverage
, sbt-buildinfo
, sbt-release
, sbt-assembly
, однако Play назвал его sbt-plugin
, что, вероятно, может сбить с толку.