如何将环境配置文件配置添加到SBT

时间:2013-06-19 14:22:39

标签: sbt

在Maven中,您可以拥有“个人档案”,可以为不同的环境设置构建配置。例如DEV,QA,UAT,PRODUCTION

为了支持持续集成,必须有一种方法告诉SBT要运行哪个环境。

如何在SBT中设置不同的环境。例如DEV,QA,UAT,PRODUCTION?

感谢

1 个答案:

答案 0 :(得分:22)

您可以通过创建自定义配置来完成此操作。

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/resourcessrc/qa/resources中,当您说dev:rundev:package时,它应该是您的类路径的一部分。这是一个快速测试:

object Main extends App {
  println(xml.XML.load(this.getClass.getResource("/config.xml")))
}