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?
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
Vous avez orthographié config
en conig
, devrait fonctionner si vous l'épelez correctement.