2016-09-19 3 views
0

Ich habe eine Anwendung, die Konfiguration aus application.conf mit ConfigFactory lädt: lazy val myConfig = ConfigFactory.load (pathToConfig) Die application.conf befindet sich zunächst in src/main/Laden Sie application.conf aus dem Ordner in der implementierten Scala-App

Ressourcen

wenn ich meine Anwendung bereitstellen will ich es die Config von APP_HOME/conf laden/application.conf

so zu tun, ausgenommen ich die application.conf aus dem Ressourcenordner, wenn das Gebäude Rmp und ich habe habe meinen APP_HOME/conf zum Klassenpfad hinzugefügt.

jar { 
    exclude '*.conf' 
} 

und

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) 
    } 
} 

Das Seltsame ist, dass, wenn ich die $ APP_HOME/conf/application.conf ändern und die Anwendung neu starten, werden die Änderungen nicht aufgenommen: dh die alte Konfiguration noch ist wobei

Jede Idee verwendet, was kann dazu führen, diese oder wie kann ich drucken, wo die config wäre hilfreich geladen wird

Antwort

0

Mit vielen Versuchen habe ich es durch die Arbeit cal ling lazy val myConfig = ConfigFactory.load() ohne Angabe des Dateinamens oder Pfades der Datei.

Obwohl es mein Problem gelöst hat, verstehe ich immer noch nicht, warum Aufruf von Laden mit dem Dateinamen oder Dateipfad nicht funktioniert

Verwandte Themen