2015-12-18 1 views
1

Actuellement, j'ai un fichier resources/application.conf qui a les clés suivantes:Scala Config: Inclure un autre file.conf

development { 
    server = www.myapp.com 
    aws_key = my_aws_key 
    aws_secret = my_aws_secret 

} 

Je voudrais retirer mon aws_key et aws_secret du fichier.

Je pensais créer un autre fichier appelé resources/credentials.conf et y stocker mes authentifications personnelles.

credentials { 
    aws_key = my_aws_key 
    aws_secret = my_aws_secret 
} 

puis include il une certaine façon dans mon application.conf ou fusionner cette configuration à l'objet Config en plus de application.conf.

credentials.conf serait ignoré. Un exemple de fichier sera vérifiée dans credentials-sample.conf que chaque développeur changerait selon ses propres informations d'identification et renommer le fichier d'exemple à credentials.conf

J'ai essayé différentes variations de include comme

  • comprennent « credentials »
  • comprennent "credentials.conf"
  • comprennent "./credentials.conf"
  • comprennent fichier ("credentials.conf ./")

et ainsi de suite. Je sais que je peux le transmettre via des variables système, mais je voudrais essayer comme mentionné ci-dessus. Si vous connaissez un meilleur moyen, s'il vous plaît faites le moi savoir.

+1

'Inclure' est un bon moyen de le faire. Cela n'a-t-il pas fonctionné? –

+1

Jetez un coup d'oeil à ceci aussi: http://stackoverflow.com/questions/24966621/overriding-multiple-config-values-in-typesafe-config-when-using-an-uberjar-to-de. –

+0

@AlekseyIzmailov: C'est mon erreur. 'include' a bien marché. Je faisais un 'ConfigFactory.load(). GetConfig (' développement ') qui exclu le credentials.conf – RAbraham

Répondre

4

Typesafe La configuration permet le repli d'une configuration à l'autre. Vous pouvez essayer ConfigFactory.Load() pour charger différentes config et utiliser withFallback pour les aligner dans l'ordre que vous avez défini. Tels que: ConfigFactory.Load("credentials.conf") withFallback ConfigFactory.Load("application.conf")