Я пытаюсь создавать/настраивать дистрибутивы среды-специфики (для разработки, качества и производства) с использованием встроенных функций упаковщика sbt, доступных в Play (2.2). Я пытался добиться этого, используя следующие параметры в build.sbt файле:Специфичные для среды дистрибутивы с использованием sbt native packager
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: расстояние» Я ожидал увидеть только «Dev» в качестве выходного сигнала и соответственно, только соответствующие отображения, которые будут использоваться. Вместо этого, похоже, что все сопоставления во всех конфигурациях объединяются. Скорее всего, я не понимаю, как должны работать конфиги в SBT. Кроме того, могут быть лучшие подходы, которые достигают того, что я ищу.
Примечание: Этот вопрос уже размещен на странице https://groups.google.com/forum/#!topic/play-framework/gdTv_hPxBq0, но я решил, что в этом случае SO может быть лучше. –