MAVEN_HOME,MVN_HOME或M2_HOME

cas*_*lin 64 java maven-2 maven-3 maven

什么是正确的Maven的环境变量名:MAVEN_HOME,MVN_HOMEM2_HOME

我发现一些细节有关MAVEN_HOME,并M2_HOME 在这里.但我也见过MVN_HOME.

Ste*_*e C 51

我个人从未发现它有用M2_HOME.

重要的是你的$ PATH环境.劫持Danix的部分答案,您所需要的只是:

export PATH=/Users/xxx/sdk/apache-maven-3.0.5/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

mvn脚本计算M2_HOME为你,无论如何,这是非常值得.

  • “我个人从未发现设置 M2_HOME 有用。” 你是对的。已弃用:/sf/answers/3339885251/ (7认同)
  • +1。我什至说过去设置M2_HOME总是会导致奇怪的错误,主要是NoClassDefFoundError,因为可以在PATH中找到mvn命令,但是通过M2_HOME可以找到另一个Maven版本。自从我停止设置env var以来,我的生活变得更好了,仅依靠将`... / bin / mvn`目录添加到`PATH`中,并让Maven自动检测事物。 (2认同)

Unc*_*ter 26

M2_HOME(或任何其他)不得用作Maven 3.5.0.有关详细信息,请参阅MNG-5607发行说明.

  • 这是最好的答案。 (3认同)

Dan*_*nix 18

这是我的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
Run Code Online (Sandbox Code Playgroud)


pri*_*ime 9

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 ----------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

看到了 @REM M2_HOME - location of maven2's installed home dir

无论如何,根据文档,maven 3.5现在不推荐使用此模式.

基于使用与安装的不同Maven版本相关的M2_HOME的问题并简化操作,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 -----------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

所以你需要的是正确设置JAVA_HOME.根据新的安装指南(截至12/29/2017),只需将maven bin目录路径添加到PATH变量即可.它应该做的伎俩.

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