Eclipse错误设置Maven项目进行类练习:检查$ M2_HOME环境变量和mvn脚本匹配

我在这方面找到了一些相关问题,但它们都与Intellij或Mac OS有关。 我在Windows 8.1上使用Eclipse:

面向Web开发人员的Eclipse Java EE IDE。 版本:Luna Service Release 2(4.4.2)Build id:20150219-0600

Maven 3.3.1

我按照课程的指示设置了“运行方式”参数,但是当我尝试运行时收到以下错误消息:

-Dmaven.multiModuleProjectDirectory系统propery未设置。 检查$ M2_HOME环境变量和mvn脚本匹配。

mvn -version的输出如下,似乎是正确的。

Apache Maven 3.3.1(cab6659f9874fa96462afef40fcf6bc033d58c1c; 2015-03-13T16:10:27-04:00)

Maven主页:C:\ Program Files \ Apache Software Foundation \ apache-maven-3.3.1 Java版本:1.7.0_75,供应商:Oracle Corporation

Java home:C:\ Program Files \ Java \ jdk1.7.0_75 \ jre

默认语言环境:en_CA,平台编码:Cp1252

操作系统名称:“windows 8.1”,版本:“6.3”,arch:“amd64”,系列:“windows”

对于Maven和Eclipse,我是一个完整的新手。 任何帮助表示赞赏。

转到:窗口 – >首选项 – > Java – >已安装的JRE – >编辑在编辑中需要放置的默认VM参数如果已经为Windows机器设置了maven home:

-Dmaven.multiModuleProjectDirectory=M2_HOME 

对于Linux和Mac OS X:

 -Dmaven.multiModuleProjectDirectory=$M2_HOME 

如果您使用的是Maven 3.x,则该变量名为$ MAVEN_HOME

 -Dmaven.multiModuleProjectDirectory=$MAVEN_HOME 

我设法为此制定了解决方案。

1)我不得不运行配置并向VM添加参数。 (运行 – 运行配置 – JRE选项卡 – VM参数)。 在文本框中输入以下内容

  -Dmaven.multiModuleProjectDirectory=%M2_HOME% 

您需要使用%M2_HOME%或类似的东西来表示Maven的路径,因为当我直接将该路径添加到该参数时,它无法找到它。 我认为这是因为论证有一个长度限制。 我的道路是

 C:\Program Files\Apache Software Foundation\apache-maven-3.3.1 

我收到一个错误,指出它无法在Program Files \ Apache中找到运行时

2)使用C:\ Program Files \ Apache Software Foundation \ apache-maven-3.3.1设置一个名为M2_HOME的系统环境变量

控制面板 – 系统和安全 – 系统 – 高级系统设置 – 环境变量 – 系统变量 – 新增function

你遇到这个并不孤单。 我最近也转到了3.3.1,遇到了同样的问题。

这不是最好的答案,但今天这可能会对你有所帮助。 尝试回到最新的3.2.x. (目前3.2.5)

我有一种感觉它与MNG-5767有关,并且最近也发生了变化。在m2e更新中可能有一些function,或者它可能与你的maven项目的结构有关。 如果没有更多细节,那将很难说清楚。

从https://www.eclipse.org/m2e更新m2eclipse安装将解决此问题。

在下面添加VM参数对我有用-Dmaven.multiModuleProjectDirectory = M2_HOME

较新版本的maven将自动在bin/mvn脚本中设置multiModuleProjectDirectory属性。 这是在这里添加的,虽然我不确定发布号码/补丁是如何工作的。 您可以在该文件中查找find_maven_basedir函数。 如果它不存在,请尝试升级maven。

在eclipse中访问以下位置

 Window Preference Java Installed JREs 

现在编辑Default VM arguments并根据您的操作系统类型放在参数下面。

如果是Windows,

 -Dmaven.multiModuleProjectDirectory=M2_HOME 

如果Linux,

 -Dmaven.multiModuleProjectDirectory=$M2_HOME