Java MAVEN_主场、MVN_主场或M2_主场

Java MAVEN_主场、MVN_主场或M2_主场,java,maven,maven-2,maven-3,Java,Maven,Maven 2,Maven 3,正确的Maven环境变量名称是什么:Maven\u HOME、MVN\u HOME或M2\u HOME 我找到了一些关于MAVEN\u HOME和M2\u HOME的详细信息。但我也看到了MVN主页。这是我的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="-

正确的Maven环境变量名称是什么:
Maven\u HOME
MVN\u HOME
M2\u HOME


我找到了一些关于
MAVEN\u HOME
M2\u HOME
的详细信息。但我也看到了MVN主页。

这是我的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\u HOME
有用

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

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

mvn
脚本为您计算
M2\u HOME
值多少钱。

$M2\u HOME
有时用于安装

查找
$M2\u HOME
值的一种方法是搜索
mvn

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

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

我们有M2\u HOME、maven\u HOME和M3\u HOME,所有这些都可以在市场上买到
以前,M2_HOME是所有人作为标准使用的唯一环境变量。
但是,由于最新版本的发布,MAVEN_Home成为标准配置,但一些旧工具仍在尝试只找到M2_Home

因此,我们应该同时拥有M2_HOME和MAVEN_HOME,以支持新旧工具。
M2_HOME也可以同时用于这两种工具。
M2_HOME(以及类似工具)从MAVEN 3.5.0起不再使用。有关详细信息,请参见和。

MAVEN\u HOME用于MAVEN 1M2\u HOME用于定位MAVEN 2。拥有两个不同的主变量意味着可以在同一台机器上同时运行这两个变量。 如果您检查旧的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-maven2安装的HOME dir的位置

不管怎么说,maven 3.5现在已经不推荐使用这种模式了

基于与安装的不同Maven版本相关的M2_HOME使用问题,为了简化,M2_HOME的使用已被删除,不再受支持

现在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。根据,, 只需将maven bin目录路径添加到path变量中。它应该会起作用


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

我解决了以下问题:

export M2_HOME=/usr/share/maven

当巧克力套装
M2\u HOME
时,我无意中发现了这一点。我想找到
settings.xml

settings.xml
的当前方式是转到
%USERPROFILE%
。在那里,包含一个目录
.m2
,在那里可以找到
settings.xml

切勿使用
M2\u HOME
。自ApacheMaven 3.5.0以来,它不受支持

详情:

基于使用与安装的不同Maven版本相关的
M2_HOME
时出现的问题,为了简化操作,已删除并不再支持使用
M2_HOME

windows用户的重要更改:已将
%HOME%
的用法替换为
%USERPROFILE%


资料来源:

+1。我甚至会说,过去设置
M2\u HOME
总是会导致奇怪的错误,主要是
NoClassDefFoundError
,因为
mvn
命令可以在路径中找到,但是通过
M2\u HOME
可以找到另一个Maven版本。我的生活变得更好了,因为我已经停止设置环境变量,只依赖于将
../bin/mvn
的目录添加到
路径
,并让Maven自动检测东西。“我个人从来没有发现将M2_设置为家是有用的。”你是对的。这是不赞成的:虽然这段代码可以解决这个问题,但如何以及为什么解决这个问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请您的回答添加解释,并说明适用的限制和假设。我在链接页面上没有看到任何内容表明,
M2_HOME
被Takari中的某个人阅读。它只是在可以运行的shell命令示例中使用占位符变量。