0

Wie kann ich die Standardargumente ändern, die an die auf einem Windows-System ausgeführten mvn-Executables übergeben werden, ohne jede Installation zu modifizieren oder alternative Startscripts manuell zu erstellen (oder meine Präferenzen auf nicht portable Weise zu "codieren")? Um es klar zu sagen, ich bin nicht offen für externe Methoden wie einen Konsolen-Alias ​​oder eine Verknüpfung oder einen Dateisystem-Link. Ich frage nach einem Maven-spezifischen portablen Weg, um die Standard-Start-Argumente für alle Maven-Ausführungen auf meinem Windows-Rechner zu beschreiben.Wie kann ich Maven Kommandozeilenargumente systemweit unter Windows angeben?

Antwort

0

Ähnlich wie MAVEN_OPTS können Sie Befehlszeilenargumente an die JVM übergeben verwendet Maven laufen, MAVEN_CMD_LINE_ARGS eine Umgebungsvariable, die Sie direkt selbst Kommandozeilenargumente zu übergeben ermöglicht Maven (aber nur unter Windows). Anders als beim Ändern von Dateien und Einstellungen auf der Ebene einer einzelnen Maven-Installation oder eines -Projekts (z. B. über settings.xml oder maven.config) können Sie mithilfe von MAVEN_CMD_LINE_ARGS Befehlszeilenargumente an alle Maven-Installationen übergeben, die mit den bereitgestellten Startskripts (unter Windows) gestartet wurden Die Skripte sind "mvn.cmd" und "mvnDebug.cmd".

Als Beispiel auf meinem Windows-Entwicklungscomputer habe ich MVN_CMD_LINE_ARGS zu

--show-version --global-settings %M2_CONF%\settings.xml --global-toolchains %M2_CONF%\toolchains.xml --define settings.security=%M2_CONF%\security-settings.xml --fail-fast --update-snapshots --strict-checksums --define maven.artifact.threads=8 gesetzt.

Anstatt einen Alias ​​zu platzieren oder ein eigenes Startskript zu erstellen, kann ich diese integrierte Methode einfach verwenden, um das Ziel standardisierter, übergreifender Konfigurationen zu erreichen. Mit MVN_CMD_LINE_ARGS Satz auf diesen Wert, Ausführen

mvn

auf der Befehlszeile ist tatsächlich wie die Ausführung

mvn --show-version --global-settings %M2_CONF%\settings.xml --global-toolchains %M2_CONF%\toolchains.xml --define settings.security=%M2_CONF%\security-settings.xml --fail-fast --update-snapshots --strict-checksums --define maven.artifact.threads=8.

Nun, ich habe gesagt, dass ich glaube, das funktioniert nur unter Windows. Während die Linux-Bash-Skripte einen Export einer Variablen mit der Bezeichnung MVN_CMD_LINE_ARGS enthalten, übergeben sie sie nicht als Argument an die ausführbare Datei mvn. Dies führt dazu, dass Sie unter Windows und Linux MVN_CMD_LINE_ARGS nach der Ausführung verwenden können, um festzustellen, welche Argumente zum Aufrufen von mvn verwendet wurden, aber nur unter Windows können Sie MVN_CMD_LINE_ARGS verwenden, um anzugeben, welche Argumente verwendet werden, um mvn aufzurufen. Von dem, was ich sagen kann, ist dieses Verhalten möglicherweise nicht beabsichtigt, also würde ich nicht empfehlen, dies in einer kritischen Weise zu verwenden. Es scheint, dass es eine projektspezifische Möglichkeit gibt, die Ausführungsargumente mvn zu konfigurieren, indem Sie sie in eine "./.mvn/maven.config" Datei innerhalb der Projektverzeichnisstruktur platzieren.

Verwandte Themen