web-dev-qa-db-fra.com

application.properties en dehors du fichier jar comment

Comme indiqué dans spring-boot-reference :

Sur votre chemin d'accès aux classes (par exemple à l'intérieur de votre jarre), vous pouvez avoir un application.properties qui fournit une valeur de propriété par défaut sensible pour le nom. Lors de l'exécution dans un nouvel environnement, un fichier application.properties peut être fourni à l'extérieur de votre pot qui remplace le nom

Je place un fichier application.properties en double avec un nom substitué sur le même chemin que le fichier jar, mais lors de l'exécution de l'application avec:

Java -jar target/myproject-0.0.1-SNAPSHOT.jar

La valeur du nom n'est pas remplacée, elle fait toujours référence à celle contenue dans application.properties dans le fichier jar. J'ai aussi essayé:

Java -Dspring.config.location=/target/application.properties -jar target/myproject-0.0.1-SNAPSHOT.jar

Mais cela ne fonctionne pas, aidez s'il vous plaît.

Modifier

Lorsque je change le répertoire en cours en target et que je l'exécute, cela fonctionne. 

Java -jar myproject-0.0.1-SNAPSHOT.jar

Pourquoi? Pourquoi ne peut pas être en dehors du chemin et l'exécuter?

9
Gibi

Cela ne fonctionne pas car vous essayez de lancer le fichier jar depuis un autre dossier: Spring Boot recherche les fichiers/dossiers relatifs à votre dossier actuel.

Vous pouvez:

1) Copiez application.properties soit dans ./ ou ./config/, par rapport à votre dossier actuel.

2) Ou précisez -Dspring.config.location:

$ Java -Dspring.config.location=target/application.properties -jar target/myproject-0.0.1-SNAPSHOT.jar
16
alexbt

Vous avez orthographié config en conig, devrait fonctionner si vous l'épelez correctement.

2
Magnus