Загрузите application.conf из папки в развернутом приложении Scala.

У меня есть приложение, которое загружает конфигурацию из application.conf с помощью ConfigFactory: lazy val myConfig = ConfigFactory.load(pathToConfig) Application.conf изначально находится в src/main/resources

Когда я развертываю свое приложение, я хочу, чтобы оно загружало конфигурацию из APP_HOME/conf/application.conf.

Для этого я исключил application.conf из папки ресурсов при создании Rmp и добавил свой 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 и перезапускаю приложение, изменения не сохраняются: т.е. старая конфигурация все еще используется.

Любая идея, что может вызвать это или как я могу распечатать, откуда загружается конфигурация, была бы полезна.


person issykazz    schedule 19.09.2016    source источник


Ответы (1)


Со многими попытками я заставил его работать, вызвав lazy val myConfig = ConfigFactory.load() без указания имени или пути файла conf.

Хотя это решило мою проблему, я до сих пор не понимаю, почему вызов загрузки с именем файла или путем к файлу не работал

person issykazz    schedule 19.09.2016