setup mkyong installing configuring java maven maven-2 maven-3

java - installing - mkyong maven windows 10



MAVEN_HOME, MVN_HOME o M2_HOME (6)

Aquí está mi configuración de Maven. Puedes usarlo como un ejemplo. No necesitas nada más para usar Maven.

M2_HOME se usa tanto para Maven 2 como para 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

¿Cuál es el nombre correcto de la variable de entorno Maven: MAVEN_HOME , MVN_HOME o M2_HOME ?

Encontré algunos detalles sobre MAVEN_HOME y M2_HOME here . Pero también he visto a MVN_HOME .


Personalmente, nunca me ha M2_HOME útil establecer M2_HOME .

Lo que cuenta es su entorno $ PATH. Secuestrando parte de la respuesta de Danix, todo lo que necesitas es:

export PATH=/Users/xxx/sdk/apache-maven-3.0.5/bin:$PATH

El script mvn calcula M2_HOME para usted de todos modos por lo que vale.


Tenemos M2_HOME, MAVEN_HOME, M3_HOME, todos están disponibles en el mercado
Anteriormente M2_HOME es la única variable de entorno utilizada por todos como estándar.
Pero, debido a las últimas versiones, el MAVEN_Home viene de serie, pero algunas herramientas antiguas aún están tratando de encontrar solo M2_HOME
así que deberíamos tener M2_HOME, MAVEN_HOME para mantener con herramientas antiguas y nuevas.
M2_HOME se puede usar también para ambos


$M2_HOME se usa a veces, por ejemplo, para instalar Takari Extensions for Apache Maven

Una forma de encontrar el valor de $M2_HOME es buscar mvn :

sudo find / -name "mvn" 2>/dev/null

Y, probablemente será: /opt/maven/



MAVEN_HOME se utiliza para maven 1 y M2_HOME se usa para ubicar maven 2 . Tener las dos variables _HOME diferentes significa que es posible ejecutar ambos en la misma máquina. Y si revisas scripts antiguos mvn.cmd , tienen algo así como:

@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 ----------------------------------------------------------------------------

Mira ese @REM M2_HOME - location of maven2''s installed home dir

De todos modos, el uso de este patrón ahora está en desuso con maven 3.5 según la documentación .

En base a los problemas en el uso de M2_HOME relacionado con las diferentes versiones de Maven instaladas y para simplificar las cosas, el uso de M2_HOME ha sido eliminado y ya no se admite MNG-5823 , MNG-5836 , MNG-5607

Así que ahora parece mvn.cmd,

@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 -----------------------------------------------------------------------------

Entonces, lo que necesita es que JAVA_HOME esté configurado correctamente. Según la nueva guía de instalación (a partir del 29/12/2017) , solo agregue la ruta del directorio maven bin a la variable PATH. Debería hacer el truco.

ex: export PATH=/opt/apache-maven-3.5.2/bin:$PATH