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
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'
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
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