Qual è il nome della variabile di ambiente Maven corretto: MAVEN_HOME
, MVN_HOME
o M2_HOME
?MAVEN_HOME, MVN_HOME o M2_HOME
Ho trovato alcuni dettagli su MAVEN_HOME
e M2_HOME
here. Ma ho anche visto MVN_HOME
in giro.
Qual è il nome della variabile di ambiente Maven corretto: MAVEN_HOME
, MVN_HOME
o M2_HOME
?MAVEN_HOME, MVN_HOME o M2_HOME
Ho trovato alcuni dettagli su MAVEN_HOME
e M2_HOME
here. Ma ho anche visto MVN_HOME
in giro.
Personalmente ho mai ritenuto utile per impostare M2_HOME
.
Ciò che conta è il tuo ambiente $ PATH. Dirottamento parte della risposta da Danix, tutto ciò che serve è:
export PATH=/Users/xxx/sdk/apache-maven-3.0.5/bin:$PATH
Lo script mvn
calcola M2_HOME
per voi comunque per quello che vale.
Ecco il mio setup di Maven. Puoi usarlo come esempio. Non hai bisogno di nient'altro per usare Maven.
M2_HOME viene utilizzato sia per Maven 2 e 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
viene utilizzato a volte, per esempio, per installare Takari Extensions for Apache Maven
Un modo per trovare $M2_HOME
valore è quello di cercare mvn
:
sudo find/-name "mvn" 2>/dev/null
E, probabilmente sarà: /opt/maven/
Abbiamo M2_HOME, MAVEN_HOME, M3_HOME tutti disponibili sul mercato
In precedenza M2_HOME è l'unico ambiente var responsabile usato da tutti come standard.
Ma, a causa delle ultime versioni, MAVEN_Home è venuto come standard ma alcuni vecchi strumenti stanno ancora cercando di trovare solo M2_HOME
quindi dovremmo avere M2_HOME, MAVEN_HOME per sostenere con vecchi e nuovi strumenti.
M2_HOME può essere utilizzato anche per entrambi
M2_HOME
(o qualsiasi altro) non deve essere utilizzato da Maven 3.5.0. Vedi MNG-5607 e Release Notes per i dettagli.
MAVEN_HOME è usato Maven 1 e M2_HOMEviene utilizzata per individuare Maven 2. Avere le due diverse variabili _HOME significa che è possibile eseguire entrambi sullo stesso computer. E se controlli vecchi mvn.cmd script Hanno qualcosa di simile,
@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 ----------------------------------------------------------------------------
Vedi che @REM M2_HOME - location of maven2's installed home dir
utilizzo Comunque di questo modello è ora sconsigliato con Maven 3.5 come da documentation.
Sulla base di problemi nell'utilizzo M2_HOME relative a versioni Maven differenti installate e per semplificare le cose, l'utilizzo di M2_HOME è stato rimosso e non è supportato più MNG-5823, MNG-5836, MNG-5607
Così ora il mvn.cmd sembrano,
@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 -----------------------------------------------------------------------------
Quindi quello che serve è JAVA_HOME deve essere impostato correttamente. Come da new installation guide (as of 12/29/2017), Basta aggiungere il percorso della directory bin Maven alla variabile PATH. Dovrebbe fare il trucco.
ex: export PATH=/opt/apache-maven-3.5.2/bin:$PATH
+1. Direi che l'impostazione di 'M2_HOME' nel passato ha sempre causato errori bizzarri, principalmente' NoClassDefFoundError' perché il comando 'mvn' sarebbe stato trovato nel PATH, ma con un'altra versione di Maven trovata tramite' M2_HOME'. La mia vita è migliorata da quando ho smesso di impostare env var e baso solo aggiungere la directory '.../bin/mvn' a' PATH' e lasciare che Maven riconosca automaticamente le cose. –