2010-01-06 53 views
14

试图让Maven,Java和OS X一起玩起来不错 - 我在Linux和Windows机器上多次没有问题地完成了一些操作。我认为我需要做的只是下载Maven,设置我的环境变量,我会很好。因此,这里是从我的.bash_profile的一个片段:Maven,JAVA_HOME w/OS X

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设置是苹果建议在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的忽略任何想法?这是造成问题的原因,因为在Maven使用的JAVA_HOME中找不到像rt.jar这样的东西。我可以通过在Maven正在使用的主目录中创建符号链接和其他hackery来解决这个问题,但我宁愿让它正常工作,因为下次Apple推送Java更新时,这只会炸毁我。感谢您的帮助...

回答

-3

以及我会检查的第一件事是mvn是否是一个脚本。如果是这样,你可以看到它是如何采购环境的。如果不是,我会查找任何通常名为.mvnrc的配置文件或/ etc中的某些文件。当然,它不会伤害到RTFM!

+2

这是一个脚本,我可以看到这个区块 如果[-z “$ JAVA_HOME”];然后 JAVA_HOME = /系统/库/框架/ JavaVM.framework /版本/ $ {JAVA_VERSION} /主页 fi 可能会影响的东西,但运行它自己的$ JAVA_HOME var被设置,因此if子句被忽略。 至于阅读手册,已完成。正如搜索Maven用户列表一样。这是依靠黑客解决方案之前的最后一招。如果你没有答案,不要回答。 – ian 2010-01-06 14:54:46

+0

以上格式的道歉... – ian 2010-01-06 14:55:41

2

在我的Mac上,/ Library/Java/Home是一个符号链接(实际上是一系列符号链接的开始),最终指向/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home。所以我不认为maven会忽略任何东西。它只是给你实际的位置。

1

我有相同的设置和所有工作正常。 UNSET你的shell脚本中的“JAVA_HOME”环境变量。 Mac安装会照顾到这一点。反正你错了。

取消设置,源文件或启动shell并重试。

11

的问题是,符号链接“CurrentJDK”的JavaVm.framework点的版本里面老的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

+0

我得到了“sudo rm CurrentJDK”的“不允许操作”。我在El Captain – Wolf7176 2016-08-29 05:52:20

+0

您确定您当前的用户有权读取/写入此文件夹吗?最好使用管理员用户 – 2016-08-29 05:55:02