gpt4 book ai didi

playframework - 使用 sbt native 打包程序的特定于环境的发行版

转载 作者:行者123 更新时间:2023-12-04 15:44:48 26 4
gpt4 key购买 nike

我正在尝试使用 Play (2.2) 中提供的 sbt native 打包程序功能创建/配置特定于环境的发行版(用于开发、质量和生产)。我试图在 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 中工作。此外,可能有更好的方法来实现我正在寻找的东西。

最佳答案

inConfig(c)( settings )表示使用 c作为在 settings 中未明确指定时的配置.在示例中,mappings 的配置指定为 Universal ,因此所有映射都添加到 Universal配置而不是更具体的一个。

相反,请执行以下操作:

inConfig(prod)(Seq(
mappings <+= ...
))

即,删除 in Universal部分。

注意:因为更具体的配置如 prod延长 Universal它们包括来自 Universal 的映射.

关于playframework - 使用 sbt native 打包程序的特定于环境的发行版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20537846/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com