Ich habe standardmäßig ein Profil in meiner Maven-Einstellungsdatei ~ / .m2 / settings.xml aktiviert .
Ist es möglich, es über die Befehlszeile zu deaktivieren, indem Sie Folgendes tun:
mvn -P!profileActivatedByDefault
Antworten:
Ja, Sie haben den richtigen Weg. Aus dem Benutzerhandbuch für Maven-Profile
Profil deaktivieren
Ab Maven 2.0.10 können ein oder mehrere Profile über die Befehlszeile deaktiviert werden, indem ihrem Bezeichner entweder das Zeichen '!' Vorangestellt wird. oder '-' wie unten gezeigt:
mvn groupId:artifactId:goal -P !profile-1,!profile-2
Dies kann verwendet werden, um Profile zu deaktivieren, die als activeByDefault markiert sind, oder Profile, die andernfalls über ihre Aktivierungskonfiguration aktiviert würden.
Wie von @Calfater in den Kommentaren angegeben, muss das Ausrufezeichen in den meisten Shells (bash, zsh und andere unter Linux und MacOS) maskiert werden, jedoch nicht in der Windows-Befehlszeile.
Die Escape-Mechanismen sind Shell-abhängig, aber normalerweise können Sie Folgendes tun:
mvn groupId:artifactId:goal -P \!profile-1
Oder
mvn groupId:artifactId:goal -P '!profile-1'
zsh
. Ich habe nur -P
zwischen einfache Anführungszeichen wie dieses gesetzt:-P '!dev'
Auf einem Mac wurde beim Versuch, '!'
mvn groupId:artifactId:goal -P!profile-1
-bash: !profile: event not found
Folgendes funktioniert mit dem '-':
mvn groupId:artifactId:goal -P-profile1
Alternativ können Sie Folgendes tun:
mvn groupId:artifactId:goal -P\!profile1
Ab Maven 2.0.10 können ein oder mehrere Profile über die Befehlszeile deaktiviert werden, indem ihrem Bezeichner entweder das Zeichen '!' Vorangestellt wird. oder '-' wie unten gezeigt:
mvn groupId:artifactId:goal -P !profile-1,!profile-2
Dies kann verwendet werden, um Profile zu deaktivieren, die als activeByDefault markiert sind, oder Profile, die andernfalls über ihre Aktivierungskonfiguration aktiviert würden. Siehe Maven Doc
Da das !
Ausrufezeichen für die meisten Befehlszeilentools ein Sonderzeichen ist, müssen Sie es möglicherweise hier verweisen .
-P
andere Profile (z. B. activeByDefault
oder <Aktivierung>) ignoriert werden. Wenn Sie jedoch nur / ausschließlich die Deaktivierungssyntax ( !
Präfix) verwenden, werden diese Profile nur deaktiviert und die Deklarationen activeByDefault
oder<activation>
-P
fügen jetzt zusätzlich zu den ActiveByDefault-Profilen die Profile hinzu: "Diese Option verwendet ein Argument, das eine durch Kommas getrennte Liste der zu verwendenden Profil-IDs ist. Wenn diese Option angegeben ist, werden die in der Option angegebenen Profile angegeben Argument wird zusätzlich zu allen Profilen aktiviert, die durch ihre Aktivierungskonfiguration oder den Abschnitt <activeProfiles> in settings.xml aktiviert werden "
mvn groupId:artifactId:goal -P \!profile-name