Я пытаюсь создать/настроить дистрибутивы для конкретной среды (для разработки, качества и производства), используя собственные функции упаковщика sbt, доступные в Play (2.2). Я попытался добиться этого, используя следующие настройки в файле build.sbt:
val dev = config("dev") extend(Universal)
val qual = config("qual") extend(Universal)
val prod = config("prod") extend(Universal)
def distSettings: Seq[Setting[_]] =
inConfig(dev)(Seq(
mappings in Universal <+= (resourceDirectory in Compile) map { dir =>
println("dev")
(dir / "start.bat.dev") -> "bin/start.bat"
// additional mappings
}
)) ++
inConfig(qual)(Seq(
mappings in Universal <+= (resourceDirectory in Compile) map { dir =>
println("qual")
(dir / "start.bat.qual") -> "bin/start.bat"
// additional mappings
}
)) ++
inConfig(prod)(Seq(
mappings in Universal <+= (resourceDirectory in Compile) map { dir =>
println("prod")
(dir / "start.bat.prod") -> "bin/start.bat"
// additional mappings
}
))
play.Project.playScalaSettings ++ distSettings
В консоли SBT, когда я набираю «dev:dist», я ожидал увидеть только «dev» в качестве вывода и, соответственно, использовать только соответствующие сопоставления. Вместо этого похоже, что все сопоставления во всех конфигурациях объединены. Скорее всего я не понимаю, как должны работать конфиги в SBT. Кроме того, могут быть лучшие подходы, которые достигают того, что я ищу.