web-dev-qa-db-fra.com

Désactiver un profil Maven à partir de la ligne de commande

J'ai un profil activé par défaut dans mon fichier de paramètres maven ~/.m2/settings.xml.

Est-il possible de le désactiver à partir de la ligne de commande en faisant quelque chose comme ceci:

mvn -P!profileActivatedByDefault
58
Calfater

Oui en effet, vous avez le bon chemin. De guide d'utilisation des profils maven

Désactivation d'un profil

À partir de Maven 2.0.10, un ou plusieurs profils peuvent être désactivés à l'aide de la ligne de commande en préfixant leur identifiant avec le caractère '!' ou '-' comme indiqué ci-dessous:

mvn groupId:artifactId:goal -P !profile-1,!profile-2

Cela peut être utilisé pour désactiver les profils marqués comme activeByDefault ou les profils qui seraient autrement activés via leur configuration d'activation.

Comme indiqué par @Calfater dans les commentaires, le point d'exclamation doit être échappé dans la plupart des shells (bash, zsh et autres sous Linux et MacOS), mais pas sur la ligne de commande Windows.

Les mécanismes d'échappement dépendent de Shell, mais vous pouvez généralement:

mvn groupId:artifactId:goal -P \!profile-1

Ou

mvn groupId:artifactId:goal -P '!profile-1'
93
GPI

Sur un Mac, j'ai eu l'erreur suivante en essayant d'utiliser '!'

mvn groupId:artifactId:goal -P!profile-1
-bash: !profile: event not found

Faire les travaux suivants avec le '-':

mvn groupId:artifactId:goal -P-profile1

Vous pouvez également faire:

mvn groupId:artifactId:goal -P\!profile1
25
Shaun Morris
mvn groupId:artifactId:goal -P profile-1,profile-2

Maven Doc dit - Cette option prend un argument qui est une liste délimitée par des virgules d'ID de profil à utiliser. Lorsque cette option est spécifiée, aucun profil autre que ceux spécifiés dans l'argument option ne sera activé.

Cela signifie qu'avec ces commandes, seul le profil spécifié dans les arguments agira comme un profil actif

3
SparkOn