我尝试在 OS X Lion 上使用 IntelliJ IDEA 10.5.1 进行简单的 Maven 构建,但收到以下错误:
运行 my-app [package] 时出错:未找到有效的 Maven 安装。 在配置对话框中设置主目录或设置 系统上的 M2_HOME 环境变量。
我已将 M2_HOME 设置为以下内容,但仍然遇到问题。 是的,我确实重新启动了 IntelliJ。
$ echo $M2_HOME
/usr/share/maven
然后我在 IntelliJ 项目的 Maven 设置中手动输入了 maven 的路径。 这不是我想要为每个项目做的事情,那么我是否缺少一些如何让 IntelliJ 知道我的 Maven 主页在哪里的东西?
在终端中输入:
$ mvn --version
然后得到以下结果:
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 16:51:28+0300)
Maven home: /opt/local/share/java/maven3
Java version: 1.6.0_65, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: ru_RU, platform encoding: MacCyrillic
OS name: "mac os x", version: "10.9.4", arch: "x86_64", family: "mac"
在第二行我们有:
Maven home: /opt/local/share/java/maven3
将此路径键入配置对话框上的字段中。这就是全部要修复的!
Mac OS 应用程序无法读取 bash 环境变量。看一下这个问题 Settingenvironment Variables in OS X? 将
M2_HOME
暴露给包括 IntelliJ 在内的所有应用程序。执行此操作后,您确实需要重新启动。
另一个选项是添加 M2_HOME 变量:
IntelliJ IDEA=>Preferences=>IDE Settings=>Path Variables
重新启动 IntelliJ 后,
IntelliJ IDEA=>Preferences=>Project Settings=>Maven=>Maven home directory
应设置为您的 M2_HOME 变量。
得到这个答案了吗?可能上面的答案太长了...
只需输入:
echo "setenv M2_HOME $M2_HOME" | sudo tee -a /etc/launchd.conf
然后重新启动你的Mac(就是这样!)
重启很烦人? 只需使用命令:
grep -E "^setenv" /etc/launchd.conf | xargs -t -L 1 launchctl
然后重新启动 IntelliJ IDEA
如果
M2_HOME
配置为指向 Maven 主目录,则:
File -> Settings
Maven
Runner
在字段
VM Options
中插入以下字符串:
Dmaven.multiModuleProjectDirectory=$M2_HOME
单击
Apply
和 OK
如果您不想使用 M2_HOME 并希望将 IntelliJ 定向到 Maven 安装,您可以简单地通过以下方式设置:
更好的方法是使用符号链接,例如'latest' 代表最新版本,并让你的 IntelliJ 使用它来保持一致性,给定的最新版本指向你盒子上安装的最新版本的 Maven。
如果您在 OSX 10.9.4 上自制安装 maven 3 时遇到此问题,请查看此博客文章。
这可能不是正确的地方,但我想提一下,我遇到了 IntelliJ 无法识别我项目的 POM 文件的问题。我最初认为这是一个错误的 Maven 配置。 相反,我只需要右键单击根目录并选择“将目录标记为 -> 源根目录。”