Как добавить конфигурацию профиля среды для SBT

В Maven вы можете иметь профили, которые могут настраивать конфигурацию сборки для разных сред. Например, DEV, QA, UAT, PRODUCTION

Чтобы поддерживать непрерывную интеграцию, должен быть способ сообщить SBT, с какой средой работать.

как настроить для разных сред в SBT. Например, DEV, QA, UAT, ПРОДУКЦИЯ?

спасибо

Ответы

Ответ 1

Вы можете сделать это, создав пользовательскую конфигурацию.

val ProfileDev = config("dev") extend(Runtime)
val ProfileQA  = config("qa") extend(Runtime)

val root = (project in file(".")).
  configs(ProfileDev, ProfileQA). // add config here!
  settings( 
    name := "helloworld",
    ....
  ).
  settings(inConfig(ProfileDev)(Classpaths.configSettings ++ Defaults.configTasks ++ Defaults.resourceConfigPaths ++ Seq(
    unmanagedResourceDirectories += {baseDirectory.value / "src" / configuration.value.name / "resources"}
  )): _*).
  settings(inConfig(ProfileQA)(Classpaths.configSettings ++ Defaults.configTasks ++ Defaults.resourceConfigPaths ++ Seq(
    unmanagedResourceDirectories += {baseDirectory.value / "src" / configuration.value.name / "resources"}
  )): _*)

Затем вы размещаете свой конфигурационный файл в src/dev/resources и src/qa/resources, и он должен быть частью вашего пути к классам, когда вы говорите dev:run или dev:package. Вот быстрый тест:

object Main extends App {
  println(xml.XML.load(this.getClass.getResource("/config.xml")))
}