Übergeordnete mehrere config-Werte in Typesafe config bei Verwendung eines uberjar bereitstellen
Habe ich schon eine Akka Anwendung, die mehrere Konfigurations-Werte (IP-Adresse, port-Nummern) definiert in resource/application.conf
. Ich bin mit der sbt-assembly
plugin, um eine uber jar, und dann die Bereitstellung dieses jar.
Gibt es eine Möglichkeit, das überschreiben der gesamten application.conf
- Datei mit einer anderen Datei, die außerhalb der uber jar ? (d.h., die Werte in die neue conf-Datei verwendet werden)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es verschiedene Möglichkeiten, um zu erreichen, dass:
Du entweder einen Klassenpfad aufnehmen
application.conf
von externen Verzeichnis und erscheinen auf dem Klassenpfad vor anderen classpath-Einträge, wie Sie Ihr Glas. Zu tun, die Sie verwenden können regelmäßigejava -classpath myconfdir:theapp.jar
und geben Sie Hauptklasse ausdrücklich.Können Sie alternativ eine weitere conf-Datei in Ihre Datei mit
include "application"
Richtlinie in Ihre conf-Datei.Können Sie legen Sie die Umgebungsvariable in
application.conf
, die zeigen wird, eine include-Datei. Sie setzen env in der Schale danach.Können Sie überschreiben die Werte programmatisch:
config.withValue("hostname", ConfigValueFactory.fromAnyRef("localhost")
.ActorSystem
nimmt eine Conf-Objekt oder Lasten von Standard-conf, falls nicht vorhanden.Die einfachste weit ist, um wählen Sie einfach eine andere Datei mit
-Dconfig.resource=/dev.conf
java command-line argument.Nähere Informationen finden Sie im offiziellen docs hier.
-Dconfig.file=...
das ist, was ich nach war.Wir tun es prod etwa so:
Den oben angegebenen Datei muss in
.conf
. Es hat all die Produktionsumgebung spezifische configs, und lebt außerhalb das Glas, so dass Sie die Bereitstellung einer identischen Akka Artefakt auf allen Servern. Es überschreibt alles inapplication.conf
.Dann in den Autostart-Skript:
War ich in der Lage, programmgesteuert override default akka config mit: