Maven M2_HOME设置为无效目录(Windows 7)

时间:2012-12-25 21:17:45

标签: maven windows-7 installation

我尝试将Maven安装到Windows 7但效果不佳。一些基本信息:

Maven安装目录:C:\Program Files\Apache Software Foundation\apache-maven-3.0.4 系统变量“M2_HOME”:C:\Program Files\Apache Software Foundation\apache-maven-3.0.4\ 系统变量“Path”:%M2_HOME%apache-maven\src\bin;%JAVA_HOME%\bin

如果我在命令路径中运行mvn --version,则会收到错误消息:

  

请在您的环境中设置M2_HOME变量以匹配Maven安装的位置

所以目前mvn的子目录没有按照说明%M2_HOME%\bin设置。如果我用那个替换%M2_HOME%apache-maven\src\bin,我得到:

  

mvn未被识别为内部或外部命令,可操作程序或批处理文件

在Maven安装目录(或zip文件)中,\bin中没有apache-maven-3.0.4文件夹,我想知道是否应该有一个文件夹?

我是Maven的新手,希望你们能帮忙。

顺便说一句,Java命令可以在任何目录下运行,所以我认为这不是问题所在,但我不能确定。

16 个答案:

答案 0 :(得分:37)

M2_HOME - 设置C:\apache-maven-3.0.4,即没有bin的路径。 在PATH - 设置%M2_HOME%\bin,即路径为bin

答案 1 :(得分:18)

如果您下载的软件包apache-maven-3.3.9不包含bin文件夹,则下载错误。你必须download a zip file which contains bin,boot,conf,lib文件夹否则出错了。下载的文件大小应为4.8 MB。您可以通过md5或SHA1校验和检查文件。

答案 2 :(得分:18)

在3.3.1 * .bat文件中消失,只剩下* .cmd文件。 .CMD与.BAT相同,有些软件期望它们。我已将.CMD重命名为.BATs,以使其在Netbeans下运行。它导致“Maven M2_HOME设置为无效目录”。将.BAT复制到.CMD(即两者都在文件夹中)解决了这个问题。

答案 3 :(得分:11)

在我的情况下,设置是正确的:

Windows系统变量:

  • M2 C:\ dev \ software \ apache-maven-3.3.9 \ bin
  • M2_HOME C:\ dev \ software \ apache-maven-3.3.9

Windows用户变量:

  • %M2_HOME%\ bin

但即使所有引用都指向最新版本(在我的情况下是3.3.9),当我有两次安装maven时我遇到了同样的问题。在 删除较旧的 版本后,相同的命令识别出maven。

在:

maven -v
ERROR: M2_HOME is set to an invalid directory.
M2_HOME = "C:\dev\software\apache-maven-3.3.9"
Please set the M2_HOME variable in your environment to match the
location of the Maven installation

在:

maven -v
Apache Maven 3.3.9
Maven home: C:\dev\software\apache-maven-3.3.9
Java version: 1.7.0_51, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.7.0_51\jre

答案 4 :(得分:5)

您需要下载名为“Binary zip”的Maven文件。例如:http://mirrors.digipower.vn/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.zip

答案 5 :(得分:2)

我在计算机上遇到了同样的问题,我解决了这个问题:

  • 我删除了Maven目录和Maven环境变量
  • 我在https://maven.apache.org/download.cgi
  • 上下载了二进制zip存档
  • 我在C:\maven
  • 上解压缩了它
  • 我添加了新的环境变量:C:\maven中的M2_HOME%M2_HOME%\lib中的M2%M2%中添加的PATH

它有效!

答案 6 :(得分:1)

刚才我遇到了同样的问题。 就我而言,问题是PATH未正确设置为包含%M2_HOME%\bin。 一旦设置正确,问题就解决了。

当您遇到此类问题时,请在命令行上打印PATH的值,以确保它正确地获取值。

答案 7 :(得分:1)

对我来说,PATH变量有旧版本的maven。所以我更新了它。我应该使用%M2_HOME%,但我已经说明了这条道路。

答案 8 :(得分:1)

摆脱env变量M2_HOME。它不被maven 3使用,事实上,它混淆了它。如果您在路径中使用过它,那么要么明确地定义maven bin的路径,要么将其更改为其他东西 - 比如M3_HOME。

答案 9 :(得分:0)

接下来的步骤后所有成功。

  1. 在4个变体的http://maven.apache.org/download.cgi页上需要下载 二进制 文件。

  2. 设置环境变量(来自@JamesB的提示 - https://stackoverflow.com/a/13093358/3941340):

  3. JAVA_HOME = C:\ Program Files \ Java \ jdk1.6.0_35

    MAVEN_HOME = d:\ SOFTWARE \ Apache的行家-3.0.4

    PATH =%PATH%;%MAVEN_HOME%\ bin中;%JAVA_HOME%\ bin中

    1. 运行 mvn -version

答案 10 :(得分:0)

在搜索路径中显示的另一个目录中有旧版本的MVN。删除旧版本,一切正常。使用Windows文件搜索扫描驱动器以查找" mvn"的所有实例。找到旧版本。

答案 11 :(得分:0)

将整个bin位置添加到“PATH”环境变量 例如:C:\ Program Files \ Apache Software Foundation \ apache-maven-3.0.4 \ bin

不需要M2_HOME,M2。它为我工作

Microsoft Windows [版本10.0.14393] (c)2016 Microsoft Corporation。保留所有权利。

  

C:\ Users \ XXXX> mvn -version Apache Maven 3.3.9   (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T22:11:47 + 05:30)   Maven主页:C:\ Program Files \ Apache Software   Foundation \ apache-maven-3.3.9 \ bin .. Java版本:1.8.0_91,供应商:   Oracle Corporation Java home:C:\ Program Files \ Java \ jdk1.8.0_91 \ jre   默认语言环境:en_US,平台编码:Cp1252操作系统名称:“windows   10“,版本:”10.0“,arch:”amd64“,家庭:”dos“

答案 12 :(得分:0)

检查不同maven位置的系统变量M2_HOME和PATH。

答案 13 :(得分:0)

在您的帐户的环境变量中设置'M2_HOME'和'PATH',从系统环境变量中删除'PATH'。

答案 14 :(得分:0)

有可能在并行位置安装另一版本的maven。 在这种情况下,删除不需要的路径并重置M2_HOME的相应路径。

答案 15 :(得分:0)

快速解答
基于与已安装的不同Maven版本相关的M2_HOME使用问题,并且为了简化操作,M2_HOME的用法已删除,不再受支持。 Windows用户的另一个重要更改:%HOME%的用法已替换为%USERPROFILE%

更详细的答案
您所观察到的一直是行家的问题。在同一目录中安装两个不同版本时,将检测到较旧的版本,而未检测到较新的版本。
在发布Maven 3.3.9之后,Eclipse Aether项目被淘汰,代码库被迁移到Apache Maven项目。 3.4.0发行版的最初目标是,在迁移到Apache Maven项目后,用完全相同的代码替换Aether,然后继续对解析器代码以及Maven的其他区域进行错误修复。这从来没有像预期的那样发生,因此决定永久刻录3.4.x版本。切换到3.5带来了这些更改