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

Posted

技术标签:

【中文标题】如何将环境配置文件配置添加到 SBT【英文标题】:How to Add Environment Profile Config to SBT 【发布时间】:2013-06-16 03:19:22 【问题描述】:

在 Maven 中,您可以拥有 Profiles,它可以为不同的环境设置构建配置。例如 DEV、QA、UAT、生产

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

如何在 SBT 中针对不同的环境进行设置。例如 DEV、QA、UAT、PRODUCTION?

谢谢

【问题讨论】:

可能是***.com/questions/16600119/…? 【参考方案1】:

您可以通过创建自定义配置来做到这一点。

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")))

【讨论】:

我已将此添加到我的 Build.scala 中,但是在运行时例如dev:package 我只是得到“没有这样的设置/任务”。有什么建议吗? Build.scala 是什么?执行show ivyConfigurations 以查看项目中的配置。我敢打赌你还没有添加dev 配置或没有执行inConfig

以上是关于如何将环境配置文件配置添加到 SBT的主要内容,如果未能解决你的问题,请参考以下文章

Linux环境下手动配置sbt

SBT安装与编译运行

SBT安装与编译运行

如何从环境变量中添加活动弹簧配置文件?

如何在Windows下为Qt配置环境变量

如何为 sbt 测试指定 sbt 0.12.2 的配置文件?