web-dev-qa-db-fra.com

MAVEN_HOME, MVN_HOME ou M2_HOME

Quel est le nom de la variable d'environnement Maven correcte: MAVEN_HOME, MVN_HOME ou M2_HOME?

J'ai trouvé des détails sur MAVEN_HOME et M2_HOMEici . Mais j'ai aussi vu MVN_HOME autour.

59
cassiomolin

Personnellement, je n'ai jamais trouvé utile de définir M2_HOME.

Ce qui compte, c'est votre environnement $ PATH. Détournant une partie de la réponse de Danix, tout ce dont vous avez besoin est:

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

Le script mvn calcule M2_HOME pour vous en tout cas pour ce que cela vaut.

48
Steve C

M2_HOME (et similaire) ne doit pas être utilisé à partir de Maven 3.5.0. Voir MNG-5607 et Notes de version pour plus de détails.

21
user318054

Voici ma configuration Maven. Vous pouvez l'utiliser comme exemple. Vous n'avez besoin de rien d'autre pour utiliser Maven.

M2_HOME est utilisé pour Maven 2 et 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
16
Danix

MAVEN_HOME est utilisé pour le pilote 1 et M2_HOME est utilisé pour localiser le maven 2 . Avoir les deux variables _HOME différentes signifie qu'il est possible de les exécuter sur le même ordinateur. Et si vous vérifiez les anciens scripts mvn.cmd , ils ont quelque chose comme:

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

Voir que @REM M2_HOME - location of maven2's installed home dir

Quoi qu'il en soit, l'utilisation de ce modèle est maintenant déconseillée avec maven 3.5 conformément à la documentation .

En raison de problèmes liés à l’utilisation de M2_HOME liés aux différentes versions de Maven installées et pour simplifier les choses, l’utilisation de M2_HOME a été supprimée et n’est plus prise en charge. MNG-582 , MNG-5836 =, MNG-5607

Alors maintenant, le mvn.cmd ressemble,

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

Il vous faut donc Java_HOME pour être configuré correctement. Conformément à nouveau guide d'installation (à partir du 29/12/2017) , ajoutez simplement le chemin du répertoire maven bin à la variable PATH. Ça devrait faire l'affaire.

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

4
prime

_$M2_HOME_ est parfois utilisé, par exemple, pour installer Takari Extensions for Apache Maven

Une façon de trouver la valeur _$M2_HOME_ consiste à rechercher mvn:

_Sudo find / -name "mvn" 2>/dev/null
_

Et ce sera probablement: _/opt/maven/_

1
imriss