Maven home(M2_HOME)没有被IntelliJ IDEA接收

Tra*_*son 40 macos intellij-idea maven osx-lion

我试图在OS X Lion上使用IntelliJ IDEA 10.5.1进行简单的maven构建,并收到以下错误:

运行my-app [package]时出错:找不到有效的Maven安装.在配置对话框中设置主目录或在系统上设置M2_HOME环境变量.

我已将M2_HOME设置为以下内容,但我仍然遇到问题.是的,我确实重启了IntelliJ.

$ echo $M2_HOME
/usr/share/maven
Run Code Online (Sandbox Code Playgroud)

然后我手动在项目的IntelliJ的Maven设置中输入maven的路径.这不是我想要为每个项目做的事情,所以有什么我想知道如何让IntelliJ知道我的maven家在哪里?

Ami*_*far 28

Mac OS应用程序无法读取bash环境变量.看看这个问题在OS X中设置环境变量?暴露M2_HOME给所有应用程序,包括IntelliJ.执行此操作后,您需要重新启动.

  • @Jonik那个链接已经死了,所以现在我可能永远不知道如何解决这个问题的官方建议;-) (3认同)
  • 另请参阅[JetBrains建议](http://devnet.jetbrains.com/docs/DOC-1160)以解决此问题. (2认同)

小智 22

输入终端:

$ mvn --version
Run Code Online (Sandbox Code Playgroud)

然后得到以下结果:

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"
Run Code Online (Sandbox Code Playgroud)

我们在第二行:

Maven home: /opt/local/share/java/maven3
Run Code Online (Sandbox Code Playgroud)

在配置对话框中将此路径键入字段.这都是要解决的!


Mik*_*keV 11

另一种选择是在以下位置添加M2_HOME变量: IntelliJ IDEA=>Preferences=>IDE Settings=>Path Variables

重新启动IntelliJ后,IntelliJ IDEA=>Preferences=>Project Settings=>Maven=>Maven home directory应将其设置为M2_HOME变量.


Nim*_*007 8

得到了这个答案?可能上面的答案很长......

只需键入:

echo "setenv M2_HOME $M2_HOME" | sudo tee -a /etc/launchd.conf
Run Code Online (Sandbox Code Playgroud)

并重新启动你的mac(就是这样!)

重启是烦人的?只需使用命令:

grep -E "^setenv" /etc/launchd.conf | xargs -t -L 1 launchctl
Run Code Online (Sandbox Code Playgroud)

并重新启动IntelliJ IDEA


小智 7

如果M2_HOME配置为指向Maven主目录,则:

  1. File -> Settings
  2. 搜索 Maven
  3. 选择 Runner
  4. 在字段中插入VM Options以下字符串:

    Dmaven.multiModuleProjectDirectory=$M2_HOME
    
    Run Code Online (Sandbox Code Playgroud)

点击ApplyOK