在Maven中,您可以擁有配置文件,它可以爲不同的環境設置配置配置。例如DEV,QA,UAT,PRODUCTION如何將環境配置文件配置添加到SBT
爲了支持持續集成,必須有一種方法可以告訴SBT運行哪個環境。
如何設置SBT中的不同環境。例如DEV,QA,UAT,生產?
謝謝
在Maven中,您可以擁有配置文件,它可以爲不同的環境設置配置配置。例如DEV,QA,UAT,PRODUCTION如何將環境配置文件配置添加到SBT
爲了支持持續集成,必須有一種方法可以告訴SBT運行哪個環境。
如何設置SBT中的不同環境。例如DEV,QA,UAT,生產?
謝謝
您可以通過創建自定義配置來完成此操作。
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
和src/qa/resources
,當你說dev:run
或dev:package
它應該是你的classpath的一部分。這裏有一個快速測試:
object Main extends App {
println(xml.XML.load(this.getClass.getResource("/config.xml")))
}
我已將此添加到我的Build.scala,但在運行時dev:包我剛剛收到「沒有這樣的設置/任務」。有什麼建議? – Daniel
什麼是Build.scala?執行'show ivyConfigurations'來查看項目中的配置。我敢打賭,你沒有添加'dev' config,或者沒有執行'inConfig'。 –
也許http://stackoverflow.com/questions/16600119/with-sbt-how-do-ia-specify-an-alternate-project-root-other-than-the-目前二/ 16761503#16761503? – Ezhik