【问题标题】:Load application.conf from folder in deployed Scala app从部署的 Scala 应用程序中的文件夹加载 application.conf
【发布时间】:2017-01-27 00:41:16
【问题描述】:

我有一个使用 ConfigFactory 从 application.conf 加载配置的应用程序:lazy val myConfig = ConfigFactory.load(pathToConfig) application.conf 最初位于 src/main/resources

当我部署我的应用程序时,我希望它从 APP_HOME/conf/application.conf 加载配置

为此,我在构建 Rmp 时从资源文件夹中排除了 application.conf,并将我的 APP_HOME/conf 添加到类路径中。

jar {
   exclude '*.conf'
}

startScripts {
   classpath += files('src/main/resources')
   doLast {
       def windowsScriptFile = file getWindowsScript()
       def unixScriptFile    = file getUnixScript()
       println('unix script is ' + unixScriptFile.text)
       windowsScriptFile.text = windowsScriptFile.text.replace('%APP_HOME%\\lib\\resources', '%APP_HOME%\\conf')
       unixScriptFile.text  = unixScriptFile.text.replace('\$APP_HOME/lib/resources', '\$APP_HOME/conf')
       println('after unix script is ' + unixScriptFile.text)
   }
}

奇怪的是,当我修改 $APP_HOME/conf/application.conf 并重新启动应用程序时,更改没有被拾取:即仍在使用旧配置

任何想法可能导致此问题或我如何打印加载配置的位置都会有所帮助

【问题讨论】:

    标签: scala gradle typesafe-config


    【解决方案1】:

    经过多次尝试,我通过调用 lazy val myConfig = ConfigFactory.load() 而不指定 conf 文件名或路径来使其工作。

    虽然它解决了我的问题,但我仍然不明白为什么使用文件名或文件路径调用 load 不起作用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-25
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      相关资源
      最近更新 更多