2016-09-19 2 views
0

Dans IntelliJ, j'ai exporté un projet scala/akka en utilisant "dist". qui se termine dans un fichier zip, sousfournir des fichiers de configuration externes dans l'application scala

foo\target\universal\foo-1.0.0.zip 

Quand je Décompressez le fichier, je reçois la structure suivante du répertoire:

D:. 
├───bin 
│  foo 
│  foo.bat 
│ 
└───lib 
     a.jar 
     b.jar 
     com.foo.jar 
     ... 
     x.jar 

En ligne de commande, je suis en train d'exécuter le foo.bat, mais je J'aimerais fournir des fichiers de configuration externes.

Je voudrais utiliser par ex. application.conf.prod et logback.xml.prod, pour remplacer les fichiers application.conf et logback.xml dans le fichier com.foo.jar

J'utilise les versions suivantes (copier une partie de build.sbt):

version := "1.0.0" 
scalaVersion := "2.11.8" 

"com.typesafe.akka" %% "akka-actor" % "2.4.9" 
"com.typesafe.akka" %% "akka-slf4j" % "2.4.9" 
"ch.qos.logback" % "logback-classic" % "1.1.6" 
"org.apache.kafka" % "kafka-clients" % "0.10.0.0" 

Est-il possible de le faire?

Merci

+0

il y a un ([post] http://stackoverflow.com/a/17623936/3380951) à propos de l'utilisation de 'reference.conf' externe, mais ma question est pour' application.conf' et 'logback.xml' –

Répondre

1

Je pense que vous pouvez le faire en passant des arguments lors de l'exécution de votre application jvm.

  • Pour la application.conf vous pouvez utiliser -Dconfig.file=/your/path/application.conf

  • Pour LogBack vous pouvez utiliser -Dlogback.configurationFile="/your/path/logback.xml"

+0

cela fonctionne pour moi. quelques réponses liées: [logback] (http://stackoverflow.com/a/19519216/3380951) ([doc officiel] (http://logback.qos.ch/manual/configuration.html)), et [akka config ] (http://stackoverflow.com/a/27355750/3380951) –

+0

Note associée: [log4j] (http://stackoverflow.com/a/7927278/3380951) est différent avec le préfixe 'file:' –