Maven 忽略了 Jenv 设置

我安装了带有 Java 1.6的 OSX,并且刚刚安装了 jenvJava 1.7:

$ jenv local '1.7'
$ jenv versions
system
1.6
1.6.0.65
* 1.7 (set by /Users/me/workspace/.java-version)
1.7.0.79
oracle64-1.6.0.65
oracle64-1.7.0.79

jenv正在做它的工作,$ java -version总是在工作,当我把它设置为1.6时显示1.6,当我把它设置为1.7时显示1.7:

$ java -version
java version "1.7.0_79"                    <--------------------------------- YAY!!
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

但 Maven 忽略了我的设置:

$ mvn -version
Apache Maven 3.0.2 (r1056850; 2011-01-08 19:58:10-0500)
Java version: 1.6.0_65, vendor: Apple Inc. <--------------------------------- BAH!!
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x", version: "10.8.5", arch: "x86_64", family: "mac"

我发现 这个所以问题的家伙只需要硬编码他的 JAVA_HOME内的 .mavenrc,但我不想我的硬编码(因此 jenv!)我没有 ~/.mavenrc也没有 /etc/mavenrc

它使用的版本似乎来自 /usr/libexec/java_home输出的第一个版本,所以在短期内,我能够通过调整1.7的 Info.plist文件(来自 这个职位)得到1.6,但这只意味着我得到1.6而不是1.7。

有什么想法吗?

17016 次浏览

我也遇到过类似的问题。我通过在所有命令前面加上 jenv exec来运行:

jenv exec mvn -version

您需要安装 jenv maven 插件,尝试以下命令并重新加载您的 shell:

Jenv 启用插件专家

现在,有一个新的选项如何通过 jenv export 插件设置 JAVA _ HOME:

jenv enable-plugin export

参见 https://github.com/gcuisinier/jenv/issues/44#issuecomment-233124185

如果您已经启用了 mavenexport插件,并且仍然有问题,请检查您没有正在设置 JAVA_HOME~/.mavenrc文件。

如果 jenv enable-plugin export仍然不工作,那么您应该重新启动终端,然后再试一次