maven忽略jenv设置

ina*_*lus 31 java macos maven jenv

我有OSX与Java 1.6安装,我刚刚安装jenv连同Java 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
Run Code Online (Sandbox Code Playgroud)

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

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

我发现了这个问题,那个人只需要对其JAVA_HOME内部进行硬编码.mavenrc,但我不希望我的硬编码(因此jenv!),而且我没有~/.mavenrc,也没有/etc/mavenrc.

它使用的版本似乎来自/usr/libexec/java_home输出的第一个版本,因此在短期内我可以通过调整1.7的Info.plist文件(从这个SO帖子)再次获得1.6 ,但这只是意味着我得到1.6而不是1.7 .

有任何想法吗?

ten*_*rty 81

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

jenv enable-plugin maven

  • 我今天在 Homebrew (macOS) 升级后遇到了问题,Maven 不尊重配置的 JVM 版本。不确定 rehash 和 shell 重新加载是否可以解决这个问题,但禁用并重新启用 Maven 插件肯定可以修复它。 (2认同)

小智 23

我遇到了类似的问题.我通过在所有命令前添加前缀来运行jenv exec:

jenv exec mvn -version
Run Code Online (Sandbox Code Playgroud)


Jur*_*nka 11

现在,有一个新选项如何通过jenv export plugin设置JAVA_HOME:

jenv enable-plugin export
Run Code Online (Sandbox Code Playgroud)

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


tgd*_*ies 6

如果您已启用mavenexport插件,但仍然遇到问题,请检查您是否没有~/.mavenrc正在设置的文件JAVA_HOME