¿Cuál es la correcta Maven nombre de variable de entorno: MAVEN_HOME, MVN_HOMEo M2_HOME?
He encontrado algunos detalles sobre MAVEN_HOMEy M2_HOME aquí . Pero también he visto MVN_HOMEalrededor.
Personalmente, nunca me ha resultado útil configurar 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 mvnscript calcula M2_HOMEpor usted de todos modos lo que vale.
M2_HOMEen el pasado siempre ha conducido a errores extraños, principalmenteNoClassDefFoundErrorporque elmvncomando se encontraría en el PATH, pero con otra versión de Maven encontradaM2_HOME. Mi vida ha sido mejor desde que dejé de configurar esa variable env y solo confío en agregar.../bin/mvnel directorioPATHy dejar que Maven autodetecte cosas.M2_HOME(y similares) no se debe utilizar a partir de Maven 3.5.0. Consulte MNG-5607 y las Notas de la versión para obtener más detalles.fuente
Aquí está mi configuración de Maven. Puedes usarlo como ejemplo. No necesitas nada más para usar Maven.
M2_HOME se usa para Maven 2 y 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:$PATHfuente
MAVEN_HOME se usa para maven 1 y M2_HOME se usa para ubicar maven 2 . Tener las dos variables _HOME diferentes significa que es posible ejecutar ambas en la misma máquina. Y si revisa los antiguos scripts mvn.cmd , tienen algo 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 eso
@REM M2_HOME - location of maven2's installed home dirDe todos modos, el uso de este patrón ahora está obsoleto con maven 3.5 según la documentación .
Así que ahora el mvn.cmd parece,
@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) , simplemente agregue la ruta del directorio maven bin a la variable PATH. Debería funcionar.
ex:
export PATH=/opt/apache-maven-3.5.2/bin:$PATHfuente
Me tropecé con esto como juegos de chocolate
M2_HOME. Quería localizarsettings.xml.El camino actual para
settings.xmles ir a%USERPROFILE%. Allí,.m2se contiene un directorio , donde se encuentrasettings.xml.Nunca use
M2_HOME. No es compatible desde Apache Maven 3.5.0.Detalles:
Fuente: https://maven.apache.org/docs/3.5.0/release-notes.html#overview-about-the-changes
fuente
$M2_HOMEse utiliza a veces, por ejemplo, para instalarTakari Extensions for Apache MavenUna forma de encontrar
$M2_HOMEvalor es buscarmvn:sudo find / -name "mvn" 2>/dev/nullY probablemente será:
/opt/maven/fuente
M2_HOMEalgo en Takari haya leído. Solo está usando una variable de marcador de posición en ejemplos de comandos de shell que podría ejecutar.He resuelto el mismo problema con lo siguiente:
export M2_HOME=/usr/share/mavenfuente
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, MAVEN_Home venía como estándar, pero algunas herramientas antiguas todavía están tratando de encontrar solo M2_HOME,
por lo que deberíamos tener M2_HOME, MAVEN_HOME para mantener con herramientas antiguas y nuevas.
M2_HOME también se puede utilizar para ambos
fuente