Réglage actif de profil et de configuration de l'emplacement de la ligne de commande au printemps de démarrage
J'ai un ressort de démarrage de l'application.
J'ai trois profils dans mon application-> de développement, de production et de transfert. Donc, j'ai 3 fichiers
- de développement d'applications.yml
- application-mise en scène.yml
- de l'application de production.yml
Mon application.yml réside à l'intérieur de src/main/resources
. J'ai mis le profil actif dans l'application.yml comme :
spring:
profiles.active: development
Les 3 autres du profil spécifique des fichiers de configuration sont présents dans C:\config
dossier.
Je suis à l'aide de gradle plugin pour eclipse. Quand j'ai essayer de faire un "bootRun", je suis en train de la ligne de commande arguments dans mon gradle dans la configuration d'eclipse comme
-Dspring.profiles.active=staging -Dspring.config.location=C:\Config
Toutefois, la propriété de ligne de commande n'est pas réfléchie, et mon profil actif est toujours se définir comme le développement(qui est celui que j'ai mentionné dans les applications.fichier yml). Aussi C:\Config le dossier n'est pas recherché pour le profil spécifique des fichiers de configuration.
Je pense que je suis absent quelque chose ici. J'ai essayé de le comprendre, pour les 2 derniers jours. Mais pas de chance. Je serais vraiment reconnaissant de toute aide.
- Pouvez-vous s'il vous plaît ajouter votre
bootRun
ligne de commande aussi - Je courais depuis eclipse et pas de ligne de commande jusqu'à maintenant. Mais j'ai essayé de courir à partir de l'aide de "gradle bootRun -Dspring.config.emplacement=C:\Config\ -Dspring.les profils.active=mise en scène" et a obtenu le même résultat.
Vous devez vous connecter pour publier un commentaire.
Il existe deux façons différentes, vous pouvez ajouter/remplacer les propriétés du ressort sur la ligne de commande.
Option 1: Propriétés Système Java (VM Arguments)
Il est important que l'-D sont des paramètres avant de votre application.jar
sinon, ils ne sont pas reconnus.
Option 2: Programme des arguments
SPRING_PROFILES_ACTIVE
exporté via~/.bash_profile
.export SPRING_PROFILES_ACTIVE=e2e
edit Configuration -> Spring Boot Config -> Overrride parameters
et de recherche pour laspring.profiles.active
et définissez la valeur de votre désir.java -Dspring.profiles.active=$ENV -Dspring.config.location=file:///aws-secrets-manager/properties/application-$ENV.properties /code/app.jar
J'ai dû ajouter ceci:
Et maintenant bootRun ramasse le profil et configuration des lieux.
Merci beaucoup @jst pour le pointeur.
bootRun { systemProperties = System.properties }
. Cette commande permet de copier tous les paramètres passés avec-D
commutateur avec les mêmes clés poursystemProperty
carte.n'est pas correct.
devrait être:
java -Dspring.profiles.active=staging -Dspring.config.location=C:\Config your-spring-boot-app.jar
OUjava your-spring-boot.jar --spring.profiles.active=staging --spring.config.location=C:\Config
vous pouvez utiliser la ligne de commande suivante:
Lors de la définition du profil à partir de la plugin Maven vous devez le faire via
run.jvmArguments
Avec l'option debug:
J'ai vu de ce voyage, beaucoup de gens..espérons que cela aide
mvn spring-boot:run -Dspring-boot.run.profiles=foo,bar
, voir: docs.printemps.io/spring-boot/docs/actuel/maven-plugin/exemples/...springmvn="mvn clean spring-boot:run -Dspring.profiles.active=local -Dspring-boot.run.profiles=local"
Il y a une autre façon, par la définition de la OS variable, SPRING_PROFILES_ACTIVE.
pour exemple :
Référence : Comment définir active du Ressort des profils
Ma meilleure pratique consiste à la définir comme une machine virtuelle "-D" argument. Veuillez noter les différences entre le printemps de démarrage 1.x et 2.x.
Les profils pour permettre peuvent être spécifiées sur la ligne de commande:
Printemps-Amorçage 2.x
Printemps-Boot 1.x
exemple d'utilisation avec maven:
Printemps-Amorçage 2.x
Printemps-Boot 1.x
Assurez-vous de les séparer par une virgule pour plusieurs profils:
-Dspring-boot.run.profiles=local
n'a pas de travail,-Dspring.profiles.active=local
travaillé.Je pense que votre problème est probablement lié à votre printemps.config.emplacement de ne se termine pas le chemin avec des "/".
Citer les docs
http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config-application-property-files
Michael Yin réponse est correcte, mais une meilleure explication semble être nécessaire!
Beaucoup de vous avez mentionné que
-D
est le bon moyen pour spécifier les paramètres de la JVM et vous avez absolument raison. Mais Michael est également à bon droit comme mentionné dans Printemps De Démarrage Des Profils de la documentation.Ce n'est pas clair dans la documentation, c'est ce genre de paramètre qu'il est:
--spring.profiles.active
est pas un standard paramètre de JVM donc, si vous voulez l'utiliser dans votre IDE de remplir les champs appropriés (c'est à dire les arguments du programme)Si vous utilisez Gradle: