Wie lautet der korrekte Maven-Umgebungsvariablenname: MAVEN_HOME
, MVN_HOME
oder M2_HOME
? Ich habe einige Details über MAVEN_HOME
und M2_HOME
here gefunden. Aber ich habe auch MVN_HOME
gesehen.MAVEN_HOME, MVN_HOME oder M2_HOME
Antwort
Ich habe es persönlich nie nützlich M2_HOME
einzustellen gefunden verwendet.
Was zählt, ist Ihre $ PATH-Umgebung. Hijacking ein Teil der Antwort von Danix, alles, was Sie brauchen, ist:
export PATH=/Users/xxx/sdk/apache-maven-3.0.5/bin:$PATH
Das mvn
Skript berechnet M2_HOME
für Sie ohnehin für das, was es wert ist.
Hier ist mein Maven-Setup. Sie können es als ein Beispiel verwenden. Du brauchst nichts anderes, um Maven zu benutzen.
M2_HOME wird sowohl für Maven 2 und 3
export M2_HOME=/Users/xxx/sdk/apache-maven-3.0.5
export M2=$M2_HOME/bin
export MAVEN_OPTS="-Xmx1048m -Xms256m -XX:MaxPermSize=312M"
export PATH=$M2:$PATH
$M2_HOME
wird manchmal zum Beispiel verwendet wird, ist Takari Extensions for Apache Maven
Ein Weg $M2_HOME
Wert zu installieren finden mvn
suchen:
sudo find/-name "mvn" 2>/dev/null
Und wahrscheinlich wird es sein: /opt/maven/
Wir haben M2_HOME, MAVEN_HOME, M3_HOME alle sind im Markt verfügbar
Zuvor M2_HOME ist die einzige Umgebung var iable wird von allen als Standard benutzt.
Aber aufgrund der neuesten Versionen der MAVEN_Home kam als Standard, aber einige alte Werkzeuge sind immer noch nur M2_HOME
zu finden, so dass wir sowohl M2_HOME, MAVEN_HOME mit alten und neuen Werkzeugen erhalten sollten.
M2_HOME kann auch für beide verwendet werden
M2_HOME
(oder eine andere) ist nicht wie von Maven 3.5.0 verwendet werden. Einzelheiten siehe MNG-5607 und Release Notes.
MAVEN_HOME für maven 1 und M2_HOMEwird verwendet, verwendet maven 2 zu lokalisieren. Mit den zwei verschiedenen _HOME-Variablen ist es möglich, beide auf demselben Rechner auszuführen. Und wenn Sie alte mvn.cmd Skripte überprüfen haben sie so etwas wie,
@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
Sehen Sie, dass @REM M2_HOME - location of maven2's installed home dir
Auf jeden Fall Verwendung dieses Muster jetzt mit Maven 3.5 gemäß der documentation ist veraltet.
Basierend auf Probleme M2_HOME bei der Verwendung im Zusammenhang mit verschiedenen Maven-Versionen installiert und die Dinge zu vereinfachen, hat die Verwendung von M2_HOME entfernt worden ist und jeden MNG-5823 mehr nicht unterstützt wird, MNG-5836, MNG-5607
So, jetzt die mvn.cmd aussehen wie,
@REM -----------------------------------------------------------------------------
@REM Apache Maven Startup Script
@REM
@REM Environment Variable Prerequisites
@REM
@REM JAVA_HOME Must point at your Java Development Kit installation.
@REM MAVEN_BATCH_ECHO (Optional) Set to 'on' to enable the echoing of the batch commands.
@REM MAVEN_BATCH_PAUSE (Optional) set to 'on' to wait for a key stroke before ending.
@REM MAVEN_OPTS (Optional) Java runtime options used when Maven is executed.
@REM MAVEN_SKIP_RC (Optional) Flag to disable loading of mavenrc files.
@REM -----------------------------------------------------------------------------
Also was Sie brauchen, ist JAVA_HOME korrekt eingestellt werden. Wie in der new installation guide (as of 12/29/2017), Fügen Sie einfach den Maven bin Verzeichnispfad zur PATH-Variablen hinzu. Es sollte den Trick machen.
ex: export PATH=/opt/apache-maven-3.5.2/bin:$PATH
+1. Ich würde sogar sagen, dass 'M2_HOME' in der Vergangenheit immer zu seltsamen Fehlern geführt hat, meistens' NoClassDefFoundError', weil der 'mvn'-Befehl im PATH gefunden wurde, aber mit einer anderen Maven-Version über' M2_HOME' gefunden wurde. Mein Leben war besser, seit ich die Einstellung env var eingestellt habe und nur noch das Verzeichnis '.../bin/mvn' zu' PATH' hinzufüge und Maven automatisch Dinge erkennen lassen würde. –