250 votes

Comment activer un profil Spring Boot lors de l'exécution d'IntelliJ?

J'ai 5 environnements:

 - local (my development machine)
 - dev
 - qc
 - uat
 - live
 - staging

Je veux que les différentes propriétés de l'application à utiliser pour chaque environnement, j'ai donc les propriétés suivantes des fichiers de chaque qui ont une autre URL de la source de données:

 - application.properties  (containing common properties)
 - application-local.properties
 - application-dev.properties
 - application-qc.properties
 - application-uat.properties
 - application-live.properties

Je suis à l'aide de l'Ide et de l'exécution de mon application en utilisant bootRun dans le plugin Gradle sur ma machine locale. Je vais être en utilisant le déploiement de l'application même de la guerre de fichiers sur tous les autres environnements de lancer Tomcat.

J'ai essayé d'ajouter:

--printemps.les profils.active=local

pour la configuration d'exécution en vertu des paramètres de script.

J'ai essayé d'ajouter

-Dspring.les profils.active=local

pour la configuration d'exécution en vertu de la VM options.

Ni les travaux. Je reçois toujours le message d'information sur le démarrage de dire: Pas de profil actif définir, pour retomber à des profils par défaut: par défaut

Si je lance mon application à partir de la ligne de commande de windows à l'aide de

gradle bootRun

mais j'ai d'abord définir la variable d'environnement

set SPRING_PROFILES_ACTIVE=local

Ensuite, tout fonctionne.

Donc ma question est, comment puis-je activer ma source locale de démarrage profil lors de l'exécution de bootRun de l'Ide ?

375voto

The Thom Points 2399

Je suis allé dans Edit Configurations ...

J'ai ajouté -Dspring.profiles.active=test aux options de la machine virtuelle, puis j'ai réexécuté cette configuration. Cela a fonctionné parfaitement.

123voto

Daniel Bubenheim Points 1709

Si vous utilisez réellement des configurations d'exécution à l'amorçage printanier (actuellement uniquement prises en charge dans Ultimate Edition), il est facile de préconfigurer les profils dans le paramètre "Profils actifs".

entrez la description de l'image ici

10voto

dleerob Points 1057

J'ai fini par ajouter ce qui suit à mon build.gradle:

 bootRun {
  environment SPRING_PROFILES_ACTIVE: environment.SPRING_PROFILES_ACTIVE ?: "local"
}

test {
  environment SPRING_PROFILES_ACTIVE: environment.SPRING_PROFILES_ACTIVE ?: "test"
}
 

Alors maintenant, lors de l'exécution de bootRun à partir d'IntelliJ, le profil "local" est utilisé par défaut.

Sur nos autres environnements, nous allons simplement définir la variable d'environnement 'SPRING_PROFILES_ACTIVE' dans Tomcat.

Je l'ai eu d'un commentaire trouvé ici: https://github.com/spring-projects/spring-boot/pull/592

6voto

Une cause probable pourrait être que vous ne transmettez pas les paramètres de ligne de commande à la méthode principale des applications. J'ai commis la même erreur il y a quelques semaines.

 public static final void main(String... args) {
    SpringApplication.run(Application.class, args);
}
 

-4voto

jwenting Points 1961

Définissez -Dspring.profiles.active=local sous les arguments du programme.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X