在 Maven 中,您可以拥有 Profiles,它可以为不同的环境设置构建配置。例如 DEV、QA、UAT、生产
为了支持持续集成,必须有一种方法来告诉 SBT 在哪个环境上运行。
如何在 SBT 中针对不同环境进行设置。例如 DEV、QA、UAT、生产?
thanks
您可以通过创建自定义配置来完成此操作。
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
and src/qa/resources
,当你说时它应该是你的类路径的一部分dev:run
or dev:package
。这是一个快速测试:
object Main extends App {
println(xml.XML.load(this.getClass.getResource("/config.xml")))
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)