尝试让Maven,Java和OS X一起玩得很好 - 我在Linux和Windows机器上多次没有遇到过问题。我假设我需要做的就是下载Maven,设置我的环境变量,我会很好。所以这是我的.bash_profile的片段......
export JAVA_HOME=/Library/Java/Home/
export M2_HOME=/usr/local/apache-maven/apache-maven-2.2.1
export PATH=$PATH:$M2_HOME/bin
JAVA_HOME
设置是Apple建议在this Q&A page上使用的设置。然而,在启动终端并运行mvn --version
之后,这是输出......
Apache Maven 2.2.1 (r801777; 2009-08-06 15:16:01-0400)
Java version: 1.6.0_17
Java home: /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x" version: "10.6.2" arch: "x86_64" Family: "mac"
任何想法为什么我的.bash_profile中的JAVA_HOME
设置被Maven忽略了?它导致了问题,因为在rt.jar
Maven使用的JAVA_HOME
中找不到{{1}}之类的内容。我可以通过在Maven正在使用的家中创建符号链接和其他hackery来解决这个问题,但我宁愿让它正常工作,因为这会在下次Apple推送Java更新时爆炸。谢谢你的帮助...
答案 0 :(得分:11)
问题是JavaVm.framework版本中的符号链接“CurrentJDK”指向旧的jdk,因此当我使用以下命令将CurrentJDK设置为最新的(1.7.0_45)时,它可以工作
cd /System/Library/Frameworks/JavaVM.framework/Versions
sudo rm CurrentJDK
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents CurrentJDK
参考: http://java.dzone.com/articles/installing-jdk-7-mac-os-x
答案 1 :(得分:8)
在Mac OS X上,您应该使用/ usr / libexec / java_home来确定正确的JAVA_HOME。
答案 2 :(得分:2)
在我的Mac上,/ Library / Java / Home是一个符号链接(实际上是一系列符号链接的开头),最终指向/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home。所以我认为maven不会忽视任何事情。它只是给你实际的位置。
答案 3 :(得分:1)
我有相同的设置,一切正常。 UNSET shell脚本中的“JAVA_HOME”环境变量。 Mac安装会解决这个问题。无论如何你都错了。
取消设置,获取文件或启动shell,然后重试。
答案 4 :(得分:-3)
我要检查的第一件事是mvn是否是一个脚本。如果是,你可以看到它是如何采购环境的。如果不是,我会寻找通常名为.mvnrc的任何配置文件,或/ etc中的某些配置文件。当然,RTFM不会受到伤害!