2017-05-22 2 views
1

J'écris actuellement une application Spring Boot avec STS.Activer un profil Maven en définissant des arguments VM

Maintenant, j'ai différentes dépendances que je veux filtrer en cas de:

  1. exécutant l'application locale à l'intérieur STS comme une application de démarrage de printemps .

  2. construire un artefact pour le déploiement sur un serveur

I diviser les dépendances avec des profils dans le pom.xml comme ceci:

<profiles> 
    <profile> 
    <id>local</id> 
    <activation> 
     <activateByDefault>false</activateByDefault> 
    </activation> 
    <dependencies ... 
    </profile> 

    <profile> 
    <id>server</id> 
    <activation> 
     <activateByDefault>true</activateByDefault> 
    </activation> 
    <dependencies ... 
</profile> 

Ma question est de savoir comment puis-je activer local profil dans la configuration d'exécution en tant qu'arguments vm lorsque je démarre l'application de démarrage de printemps locale? En raison du paramètre activateByDefault true sur l'autre profil, il ne peut pas démarrer l'application car certaines dépendances pour le démarrage local sont exclues.

modifier: Je veux changer le profil dans la configuration de lancement de l'application. Il n'y a pas de build maven donc je ne peux pas utiliser le drapeau -P.

Ajout

<activation> 
    <property> 
    <name>act</name> 
    <value>local</value> 
    </property> 
</activation> 

et commencer par des arguments vm -Dact = ne fonctionne pas local.

run configuration

+1

'-Dspring.pofiles.active =' – pvpkiran

+0

Je souhaite utiliser un profil Maven et non un profil de ressort. – dokukaefer

Répondre

3

Vous ne pouvez pas activer le profil différent de construction (exprimée en pom.xml) au cours de l'exécution. Au moment où vous exécutez votre application, il est trop tard, car il a été construit avant qu'il ne s'exécute. En d'autres termes, vous pouvez utiliser des profils maven pour créer différentes générations.

Vous pouvez modifier le comportement d'exécution de votre application @pvpkiran en utilisant les profils Spring.

+0

D'accord merci. Oui en effet les spring.profiles sont une solution de contournement alors :( – dokukaefer