Mar*_*der 6 sbt playframework playframework-2.2 sbt-native-packager
我正在尝试使用Play(2.2)中提供的sbt本机打包器功能创建/配置环境特定的发行版(用于开发,质量和生产).我尝试使用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
Run Code Online (Sandbox Code Playgroud)
在SBT控制台中,当我输入"dev:dist"时,我期望只看到"dev"作为输出,相应地只看到要使用的相应映射.相反,看起来所有配置中的所有映射都已合并.很可能我不明白配置如何在SBT中起作用.此外,可能有更好的方法可以实现我正在寻找的东西.
inConfig(c)( settings )表示在 中未明确指定时用作c配置settings。在示例中, 的配置mappings被指定为Universal,因此映射全部添加到Universal配置中,而不是更具体的映射。
相反,请执行以下操作:
inConfig(prod)(Seq(
mappings <+= ...
))
Run Code Online (Sandbox Code Playgroud)
即,删除该in Universal部分。
注意:因为更具体的配置(例如prod扩展)Universal包含来自Universal.
| 归档时间: |
|
| 查看次数: |
721 次 |
| 最近记录: |