【问题标题】:Maven M2_HOME set to an invalid directory (Windows 7)Maven M2_HOME 设置为无效目录(Windows 7)
【发布时间】:2012-12-11 15:01:13
【问题描述】:

我尝试将 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 命令可以从任何目录运行,所以我认为这不是问题所在,但我不能确定。

【问题讨论】:

  • 如果您下载的包 apache-maven-3.0.4 不包含 bin 文件夹,则您的下载错误。您必须下载一个包含 bin、boot、conf、lib 文件夹的 zip 文件,否则会出现问题。下载的文件应该有大约 4.8 mb 大小...
  • 谢谢,我下载的是 src 版本而不是 bin 版本,现在可以使用了。仍然不确定有什么区别。我相信您需要添加您的评论作为答案,以便我投票。
  • MikkoP 在大多数项目中,可执行文件位于\bin 文件夹中,代码位于\src 文件夹中。如果你已经下载了二进制 maven 包,那么正确的路径是 \apache-maven-x.y.z\bin

标签: maven windows-7 installation


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • Maven 二进制文件tar.gz 还可以包含binbootconflib 文件夹。
    • 非常感谢......我不知道发生了什么。
    【解决方案3】:

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

    【讨论】:

    • 我有两个,maven 安装附带的 mvn.cmd 和重定向到它的 mvn.bat (%M2_HOME%\bin\mvn.cmd %*)。如果您使用 Maven 发布插件,这将非常有用。
    【解决方案4】:

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

    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

    但我在安装 两个 maven 时遇到了同样的问题,即使所有引用都指向最新版本,在我的例子中是 3.3.9。 删除旧版本后,相同的命令识别出 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
    

    【讨论】:

    • 谢谢!我只是重命名了旧的 Maven 安装文件夹并收到了相同的
    • 任何提示为什么即使我们在 m2_home 中指向更高版本,更高版本也存在旧版本存在问题?
    • @SanjayJain 不确定;可能某些卸载或安装未能删除对旧版本的引用。我没有时间调查。
    【解决方案5】:

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

    【讨论】:

    • 为什么?见this。我用过那个包。
    【解决方案6】:

    我的电脑也遇到了同样的问题,我解决了:

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

    它有效!

    【讨论】:

      【解决方案7】:

      对我来说,PATH 变量是 maven 的旧版本。所以我更新了它。我应该使用 %M2_HOME% 但我已经拼出了路径。

      【讨论】:

        【解决方案8】:

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

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

        【讨论】:

          【解决方案9】:

          摆脱环境变量 M2_HOME。 maven 3 不使用它,事实上,它混淆了它。如果您在路径中使用过它,则要么明确定义 maven bin 的路径,要么将其更改为其他内容 - 例如 M3_HOME。

          【讨论】:

            【解决方案10】:

            接下来的步骤一切顺利。

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

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

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

            MAVEN_HOME=D:\software\apache-maven-3.0.4

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

            1. 运行 mvn -version

            【讨论】:

              【解决方案11】:

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

              【讨论】:

                【解决方案12】:

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

                不需要 M2_HOME,M2。它对我有用

                Microsoft Windows [版本 10.0.14393] (c) 2016 年微软公司。保留所有权利。

                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 主页:C:\Program Files\Java\jdk1.8.0_91\jre 默认语言环境:en_US,平台编码:Cp1252 操作系统名称:“windows 10”,版本:“10.0”,拱:“amd64”,家庭:“dos”

                【讨论】:

                  【解决方案13】:

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

                  【讨论】:

                    【解决方案14】:

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

                    【讨论】:

                      【解决方案15】:

                      有可能在并行位置安装另一个版本的 Maven。 在这种情况下,删除不需要的路径并针对 M2_HOME 重置适当的路径。

                      【讨论】:

                        【解决方案16】:

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

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

                        【讨论】:

                          猜你喜欢
                          • 2017-01-14
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2018-03-04
                          • 2010-11-14
                          • 1970-01-01
                          • 2017-10-20
                          • 1970-01-01
                          相关资源
                          最近更新 更多