MAVEN_HOME,MVN_HOME或M2_HOME

时间:2014-10-28 13:42:44

标签: java maven maven-2 maven-3

正确的Maven环境变量名称是什么:MAVEN_HOMEMVN_HOMEM2_HOME

我找到了有关MAVEN_HOMEM2_HOME here的一些详细信息。但我也见过MVN_HOME

8 个答案:

答案 0 :(得分:44)

我个人从未发现设置M2_HOME非常有用。

您的$ PATH环境有多重要。劫持Danix的部分答案,您只需要:

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

mvn脚本无论如何都会为你计算M2_HOME

答案 1 :(得分:16)

这是我的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

答案 2 :(得分:16)

M2_HOME(等)不能用作Maven 3.5.0。有关详细信息,请参阅MNG-5607Release Notes

答案 3 :(得分:4)

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

无论如何,根据documentation,maven 3.5现在不推荐使用此模式。

  

基于使用M2_HOME与安装的不同Maven版本相关的问题并简化操作,M2_HOME的使用已被删除,不再支持MNG-5823MNG-5836MNG-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。根据{{​​3}}, 只需将maven bin目录路径添加到PATH变量即可。应该这样做。

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

答案 4 :(得分:1)

例如,有时会使用

$M2_HOME来安装Takari Extensions for Apache Maven

查找$M2_HOME值的一种方法是搜索mvn

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

而且,可能是:/opt/maven/

答案 5 :(得分:1)

我偶然发现了M2_HOME的巧克力套装。我想找到settings.xml

settings.xml的当前方法是转到%USERPROFILE%。在那里,包含目录.m2,在其中找到settings.xml

请勿使用M2_HOME。自Apache Maven 3.5.0起不支持此功能。

详细信息:

基于与安装的不同Maven版本相关的M2_HOME的使用问题以及为简化起见,M2_HOME的用法已被删除,MNG-5823,{{3 }},MNG-5836

Windows用户的重要更改:%HOME%的使用已由%USERPROFILE% MNG-5607

代替

来源:MNG-6001

答案 6 :(得分:-1)

我已经通过以下方法解决了相同的问题:

export M2_HOME=/usr/share/maven

答案 7 :(得分:-4)

我们有M2_HOME,MAVEN_HOME,M3_HOME都在市场上有售 以前,M2_HOME是所有人用作标准的唯一环境变量 但是,由于最新版本的MAVEN_Home标配,但一些旧工具仍在尝试只找到M2_HOME
所以我们应该同时使用M2_HOME,MAVEN_HOME维持旧工具和新工具。
M2_HOME也可用于两者