在 Scala 应用程序中提供外部配置文件

provide external config files in scala application

在 IntelliJ 中,我使用 "dist" 导出了一个 scala/akka 项目。 以 zip 文件结尾,在

foo\target\universal\foo-1.0.0.zip

当我解压缩文件时,我得到以下目录结构:

D:.
├───bin
│       foo
│       foo.bat
│
└───lib
        a.jar
        b.jar
        com.foo.jar
        ...
        x.jar

在命令行中,我正在尝试 运行 foo.bat,但我想提供外部配置文件。

我想使用例如application.conf.prodlogback.xml.prod,以覆盖 com.foo.jar 文件

中的 application.conflogback.xml 文件

我正在使用以下版本(复制 build.sbt 的一部分):

version := "1.0.0"
scalaVersion := "2.11.8"

"com.typesafe.akka" %% "akka-actor" % "2.4.9"
"com.typesafe.akka" %% "akka-slf4j" % "2.4.9"
"ch.qos.logback" % "logback-classic" % "1.1.6"
"org.apache.kafka" % "kafka-clients" % "0.10.0.0"

有办法吗?

谢谢

我认为您可以通过在 运行 您的 jvm 应用程序时传递参数来做到这一点。

  • 对于 application.conf 你可以使用 -Dconfig.file=/your/path/application.conf

  • 对于 LogBack 你可以使用 -Dlogback.configurationFile="/your/path/logback.xml"