maven忽略jenv设置

时间:2015-06-02 17:22:52

标签: java macos 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"

我找到了this SO question这个人只需要在JAVA_HOME内对.mavenrc进行硬编码,但我不希望我的硬编码(因此jenv!),我没有~/.mavenrc,也没有/etc/mavenrc

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

有什么想法吗?

3 个答案:

答案 0 :(得分:51)

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

  

jenv enable-plugin maven

答案 1 :(得分:21)

我有类似的问题。我通过使用jenv exec前缀所有命令来运行:

jenv exec mvn -version

答案 2 :(得分:7)

现在,有了一个新选项,如何通过jenv导出插件设置JAVA_HOME:

jenv enable-plugin export

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