it-roy-ru.com

MAVEN_HOME, MVN_HOME или M2_HOME

Какое правильное имя переменной среды Maven: MAVEN_HOME, MVN_HOME или M2_HOME?

Я нашел некоторые подробности о MAVEN_HOME и M2_HOMEздесь . Но я также видел MVN_HOME вокруг.

53
cassiomolin

Лично я никогда не считал полезным устанавливать M2_HOME.

Что важно, так это ваша среда $ PATH. Угоняю часть ответа от Danix, все что вам нужно это:

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

Сценарий mvn вычисляет M2_HOME для вас в любом случае за то, что он стоит.

44
Steve C

Вот моя установка Maven. Вы можете использовать это как пример. Вам не нужно больше ничего, чтобы использовать Maven.

M2_HOME используется для Maven 2 и 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

M2_HOME (и т.п.) не должен использоваться с Maven 3.5.0. Подробности смотрите в ( MNG-5607 и Примечания к выпуску .

16
user318054

MAVEN_HOME используется для maven 1 и M2_HOME используется для определения местоположения maven 2 . Наличие двух разных переменных _HOME означает, что можно запускать обе на одной машине. И если вы проверите старые сценарии mvn.cmd , у них есть что-то вроде:

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

Посмотрите, что @REM M2_HOME - location of maven2's installed home dir

В любом случае, использование этого шаблона теперь не рекомендуется для maven 3.5 в соответствии с документация .

На основании проблем в использовании M2_HOME, связанных с различными установленными версиями Maven, и для упрощения, использование M2_HOME было удалено и больше не поддерживается MNG-582 , MNG-5836 =, MNG-5607

Теперь 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 -----------------------------------------------------------------------------

Так что вам нужно, чтобы Java_HOME был установлен правильно. Согласно новое руководство по установке (от 29.12.2017) , просто добавьте путь к каталогу maven bin в переменную PATH. Это должно сделать свое дело.

например: export PATH=/opt/Apache-maven-3.5.2/bin:$PATH

4
prime

$M2_HOME иногда используется, например, для установки Takari Extensions for Apache Maven

Один из способов найти значение $M2_HOME - это поиск mvn:

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

И, вероятно, это будет: /opt/maven/

1
imriss