Was ist die richtige Variable Maven Umgebung Name: MAVEN_HOME
, MVN_HOME
oder M2_HOME
?
Ich habe einige Details über MAVEN_HOME
und M2_HOME
hier gefunden . Aber ich habe auch gesehen MVN_HOME
.
Was ist die richtige Variable Maven Umgebung Name: MAVEN_HOME
, MVN_HOME
oder M2_HOME
?
Ich habe einige Details über MAVEN_HOME
und M2_HOME
hier gefunden . Aber ich habe auch gesehen MVN_HOME
.
Antworten:
Ich persönlich fand es nie nützlich zu setzen M2_HOME
.
Was zählt, ist Ihre $ PATH-Umgebung. Wenn Sie einen Teil der Antwort von Danix entführen, brauchen Sie nur:
export PATH=/Users/xxx/sdk/apache-maven-3.0.5/bin:$PATH
Das mvn
Skript berechnet M2_HOME
für Sie trotzdem, was es wert ist.
M2_HOME
(und dergleichen) darf ab Maven 3.5.0 nicht mehr verwendet werden. Weitere Informationen finden Sie in MNG-5607 und Versionshinweisen .
Hier ist mein Maven-Setup. Sie können es als Beispiel verwenden. Sie brauchen nichts anderes, um Maven zu benutzen.
M2_HOME wird sowohl für Maven 2 als auch für Maven 3 verwendet
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
MAVEN_HOME wird für Maven 1 und M2_HOME für Maven 2 verwendet . Mit den zwei verschiedenen _HOME-Variablen können beide auf demselben Computer ausgeführt werden. 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 ----------------------------------------------------------------------------
Siehst du das @REM M2_HOME - location of maven2's installed home dir
Wie auch immer, die Verwendung dieses Musters ist jetzt mit maven 3.5 gemäß der Dokumentation veraltet .
Aufgrund von Problemen bei der Verwendung von M2_HOME im Zusammenhang mit verschiedenen installierten Maven-Versionen und zur Vereinfachung wurde die Verwendung von M2_HOME entfernt und wird nicht mehr unterstützt. MNG-5823 , MNG-5836 , MNG-5607
So, jetzt sieht die mvn.cmd aus 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 -----------------------------------------------------------------------------
Was Sie also brauchen, ist JAVA_HOME, um richtig eingestellt zu sein. Fügen Sie gemäß der neuen Installationsanleitung (Stand 29.12.2017) einfach den Verzeichnispfad maven bin zur Variablen PATH hinzu. Es sollte den Trick machen.
Ex : export PATH=/opt/apache-maven-3.5.2/bin:$PATH
Ich stolperte darüber als schokoladige Sets M2_HOME
. Ich wollte finden settings.xml
.
Der aktuelle Weg für settings.xml
ist zu gehen %USERPROFILE%
. Dort ist ein Verzeichnis .m2
enthalten, in dem man findet settings.xml
.
Niemals benutzen M2_HOME
. Es wird seit Apache Maven 3.5.0 nicht mehr unterstützt.
Einzelheiten:
Aufgrund von Problemen bei der Verwendung in
M2_HOME
Bezug auf verschiedene installierte Maven-Versionen und zur Vereinfachung wurde die Verwendung vonM2_HOME
entfernt und wird nicht mehr unterstützt. MNG-5823 , MNG-5836 , MNG-5607 .Wichtige Änderung für Windows-Benutzer: Die Verwendung von
%HOME%
wurde durch%USERPROFILE%
MNG-6001 ersetzt
Quelle: https://maven.apache.org/docs/3.5.0/release-notes.html#overview-about-the-changes
$M2_HOME
wird manchmal zum Beispiel zum Installieren verwendet Takari Extensions for Apache Maven
Eine Möglichkeit, einen $M2_HOME
Wert zu finden , besteht darin, nach folgenden Elementen zu suchen mvn
:
sudo find / -name "mvn" 2>/dev/null
Und wahrscheinlich wird es sein: /opt/maven/
M2_HOME
etwas in Takari gelesen wird. In Beispielen für Shell-Befehle, die Sie ausführen können, wird lediglich eine Platzhaltervariable verwendet.
Ich habe das gleiche Problem mit folgenden Problemen gelöst:
export M2_HOME=/usr/share/maven
Wir haben M2_HOME, MAVEN_HOME, M3_HOME, alle sind auf dem Markt verfügbar.
Bisher war M2_HOME die einzige Umgebungsvariable, die von allen als Standard verwendet wird.
Aufgrund der neuesten Versionen war das MAVEN_Home Standard, aber einige alte Tools versuchen immer noch, nur M2_HOME zu finden,
sodass wir sowohl M2_HOME als auch MAVEN_HOME haben sollten, um mit alten und neuen Tools zu arbeiten.
M2_HOME kann auch für beide verwendet werden
M2_HOME
in der Vergangenheit immer zu seltsamen Fehlern geführt hat, hauptsächlichNoClassDefFoundError
weil dermvn
Befehl im PATH gefunden wurde, aber mit einer anderen Maven-Version, die durch gefunden wurdeM2_HOME
. Mein Leben war besser, seit ich aufgehört habe, diese env var einzustellen, und mich nur darauf verlasse,.../bin/mvn
das Verzeichnis hinzuzufügenPATH
und Maven Dinge automatisch erkennen zu lassen.