什么是正确的Maven环境变量名称:MAVEN_HOME
,MVN_HOME
或M2_HOME
?MAVEN_HOME,MVN_HOME或M2_HOME
我找到一些关于MAVEN_HOME
和M2_HOME
here的详细信息。但我也见过MVN_HOME
左右。
什么是正确的Maven环境变量名称:MAVEN_HOME
,MVN_HOME
或M2_HOME
?MAVEN_HOME,MVN_HOME或M2_HOME
我找到一些关于MAVEN_HOME
和M2_HOME
here的详细信息。但我也见过MVN_HOME
左右。
我个人从来没有认为有必要设置M2_HOME
。
重要的是您的$ PATH环境。从Danix答案劫持一部分,所有你需要的是:
export PATH=/Users/xxx/sdk/apache-maven-3.0.5/bin:$PATH
的mvn
脚本为你计算M2_HOME
反正它的价值。
这是我的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
$M2_HOME
有时使用,例如,安装Takari Extensions for Apache Maven
一个办法,找出$M2_HOME
值来搜索mvn
:
sudo find/-name "mvn" 2>/dev/null
而且,因为这可能是:/opt/maven/
我们有M2_HOME,MAVEN_HOME,M3_HOME全部在市场上有售
以前M2_HOME是唯一的环境变量所有人都可以用作标准。
但是,由于最新发布的版本,MAVEN_Home作为标准版发布,但一些旧工具仍在尝试仅查找M2_HOME
,所以我们应该同时使用新旧工具支持M2_HOME和MAVEN_HOME。
M2_HOME也可以同时用于
M2_HOME
(或任何其他)不适用于Maven 3.5.0。有关详细信息,请参阅MNG-5607和Release Notes。
MAVEN_HOME用于行家1和M2_HOME用于定位行家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不赞成每documentation。
基于使用M2_HOME与安装不同的Maven的版本,并把事情简单化的问题,M2_HOME的使用已被删除,不支持任何更MNG-5823,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。根据new installation guide (as of 12/29/2017), 只需将maven bin目录路径添加到PATH变量即可。它应该做的伎俩。
ex:export PATH=/opt/apache-maven-3.5.2/bin:$PATH
+1。我甚至会说在过去设置'M2_HOME'总是会导致奇怪的错误,主要是'NoClassDefFoundError',因为''mvn'命令可以在PATH中找到,但是通过'M2_HOME'找到另一个Maven版本。自从我停止设置env var之后,我的生活变得更好了,只需要将'.../bin/mvn'的目录添加到'PATH'并让Maven自动检测。 – 2016-05-17 05:11:15