maven 忽略 jenv 设置
maven ignoring jenv settings
我安装了 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
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 那家伙只需要在 .mavenrc
中硬编码他的 JAVA_HOME
,但我不希望我的硬编码(因此 jenv
! ), 我没有 ~/.mavenrc
, 也没有 /etc/mavenrc
.
它使用的版本似乎来自 /usr/libexec/java_home
输出的第一个版本,所以在短期内我可以通过调整 1.7 的 Info.plist
文件(来自this SO post),但这只意味着我得到 1.6 而不是 1.7。
有什么想法吗?
我遇到了类似的问题。我通过在所有命令前加上 jenv exec
:
得到了东西 运行
jenv exec mvn -version
您需要安装 jenv maven 插件,尝试以下命令并重新加载您的 shell:
jenv enable-plugin maven
现在,有一个新选项如何通过 jenv 导出插件设置 JAVA_HOME:
jenv enable-plugin export
见https://github.com/gcuisinier/jenv/issues/44#issuecomment-233124185
如果您启用了 maven
和 export
插件,但仍然有问题,请检查您是否没有设置 JAVA_HOME
的 ~/.mavenrc
文件.
我安装了 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
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 那家伙只需要在 .mavenrc
中硬编码他的 JAVA_HOME
,但我不希望我的硬编码(因此 jenv
! ), 我没有 ~/.mavenrc
, 也没有 /etc/mavenrc
.
它使用的版本似乎来自 /usr/libexec/java_home
输出的第一个版本,所以在短期内我可以通过调整 1.7 的 Info.plist
文件(来自this SO post),但这只意味着我得到 1.6 而不是 1.7。
有什么想法吗?
我遇到了类似的问题。我通过在所有命令前加上 jenv exec
:
jenv exec mvn -version
您需要安装 jenv maven 插件,尝试以下命令并重新加载您的 shell:
jenv enable-plugin maven
现在,有一个新选项如何通过 jenv 导出插件设置 JAVA_HOME:
jenv enable-plugin export
见https://github.com/gcuisinier/jenv/issues/44#issuecomment-233124185
如果您启用了 maven
和 export
插件,但仍然有问题,请检查您是否没有设置 JAVA_HOME
的 ~/.mavenrc
文件.