J'ai un projet Scala avec de nombreuses dépendances. L'un d'eux nécessite un paramètre qui n'est pas dans son propre application.conf, mais dans le fichier application.conf d'une autre dépendance. Lorsque j'exécute le projet avec sbt run
tout va bien, cependant, quand j'exécute un service deb packagé ou un script bin de target/universal/stage/bin, j'obtiens une erreur: com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'roadmaps'
. Deux dépendances ont ce paramètre dans application.conf dans leurs bocaux. Lorsque j'ai déplacé le paramètre de application.conf dans reference.conf et publié de nouveau la dépendance, puis ré-emballé mon projet, la version empaquetée a fonctionné. Alors pourquoi mon paramètre n'est pas récupéré depuis application.conf dans le fichier jar de la dépendance et pourquoi devrais-je conserver la configuration de la bibliothèque dans reference.conf, en plus du fait qu'il a la plus faible priorité parmi les fichiers de configuration?La dépendance du projet packagé sbt-native-packager ne parvient pas à trouver la valeur de configuration
0
A
Répondre
1
-Dconfig.trace=loads
m'a aidé à trouver une réponse. Quand je sbt run
un projet qui dependsOn
autres projets, il charge d'abord ses propres application.conf
, puis ceux empaquetés dans des jars de ses dépendances directes (c'est de là que vient 'roadmaps'
), puis reference.conf
s des dépendances. Lorsque j'ajoute bashScriptExtraDefines += """addJava "-Dconfig.file=${app_home}/../conf/application.conf""""
dans build.sbt, empaquetez le projet avec stage
et exécutez-le à partir du script dans target/universal/stage/bin
, il charge uniquement le application.conf
spécifié puis passe à reference.conf
s.
Pouvez-vous donner un 'build.sbt' minimal reproduisant ceci? Cela ressemble plus à un problème de configuration (si une clé de configuration est manquante). Checkout https://github.com/typesafehub/config et déboguer votre configuration pour voir où les clés manquantes viennent si vous démarrez votre application avec 'sbt run'. – Muki
J'ai cette clé 'roadmaps' dans application.conf dans deux jars avec des dépendances (c'est la même chose dans les deux fichiers). Pourquoi n'est-il pas récupéré par un service packagé? – Yar
Plusieurs 'application.conf' peuvent être chargés différemment pendant l'exécution. Déboguez la configuration de typesafe quand et où les choses sont chargées. – Muki