从已部署的Scala应用程序中的文件夹加载application.conf

时间:2016-09-19 10:44:07

标签: scala gradle typesafe-config

我有一个使用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并重新启动应用程序时,未获取更改:即旧配置仍在使用

任何想法可能会导致这种情况或如何打印配置的位置都会有所帮助

1 个答案:

答案 0 :(得分:0)

经过多次尝试,我通过调用lazy val myConfig = ConfigFactory.load()来实现它,而没有指定conf文件名或路径。

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