Maven忽略OSX上的JAVA_主页?

Maven忽略OSX上的JAVA_主页?,java,macos,maven,Java,Macos,Maven,出于某种原因,Maven忽略了OSX上的JAVA_主页 我最近从Java8Build11升级到Java8Build25,由于25中的错误修复,我删除了11 我已经更新了JAVA\u HOME: :~ > echo $JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home java和javac都报告了正确的版本: :~ > java -version java version "1.8.0_2

出于某种原因,Maven忽略了OSX上的JAVA_主页

我最近从Java8Build11升级到Java8Build25,由于25中的错误修复,我删除了11

我已经更新了
JAVA\u HOME

:~ > echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
java
javac
都报告了正确的版本:

:~ > java -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

:~ > javac -version
javac 1.8.0_25
libexec
是否正确:

:~ > /usr/libexec/java_home 
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
:~ > ls -la /System/Library/Frameworks/JavaVM.framework/Versions/
total 64
drwxr-xr-x  11 root  wheel   374B Nov 19 14:35 ./
drwxr-xr-x  12 root  wheel   408B Sep 23 14:29 ../
lrwxr-xr-x   1 root  wheel    10B Jul 28 14:50 1.4@ -> CurrentJDK
lrwxr-xr-x   1 root  wheel    10B Jul 28 14:50 1.4.2@ -> CurrentJDK
lrwxr-xr-x   1 root  wheel    10B Jul 28 14:50 1.5@ -> CurrentJDK
lrwxr-xr-x   1 root  wheel    10B Jul 28 14:50 1.5.0@ -> CurrentJDK
lrwxr-xr-x   1 root  wheel    10B Jul 28 14:50 1.6@ -> CurrentJDK
lrwxr-xr-x   1 root  wheel    10B Jul 28 14:50 1.6.0@ -> CurrentJDK
drwxr-xr-x   8 root  wheel   272B Jul 29 18:41 A/
lrwxr-xr-x   1 root  wheel     1B Jul 28 14:50 Current@ -> A
lrwxr-xr-x   1 root  wheel    58B Nov 19 14:35 CurrentJDK@ -> /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents
当前JDK符号链接正确:

:~ > /usr/libexec/java_home 
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
:~ > ls -la /System/Library/Frameworks/JavaVM.framework/Versions/
total 64
drwxr-xr-x  11 root  wheel   374B Nov 19 14:35 ./
drwxr-xr-x  12 root  wheel   408B Sep 23 14:29 ../
lrwxr-xr-x   1 root  wheel    10B Jul 28 14:50 1.4@ -> CurrentJDK
lrwxr-xr-x   1 root  wheel    10B Jul 28 14:50 1.4.2@ -> CurrentJDK
lrwxr-xr-x   1 root  wheel    10B Jul 28 14:50 1.5@ -> CurrentJDK
lrwxr-xr-x   1 root  wheel    10B Jul 28 14:50 1.5.0@ -> CurrentJDK
lrwxr-xr-x   1 root  wheel    10B Jul 28 14:50 1.6@ -> CurrentJDK
lrwxr-xr-x   1 root  wheel    10B Jul 28 14:50 1.6.0@ -> CurrentJDK
drwxr-xr-x   8 root  wheel   272B Jul 29 18:41 A/
lrwxr-xr-x   1 root  wheel     1B Jul 28 14:50 Current@ -> A
lrwxr-xr-x   1 root  wheel    58B Nov 19 14:35 CurrentJDK@ -> /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents
但Maven仍在努力达到1.8.0_11:

:~ > mvn -version
Error: JAVA_HOME is not defined correctly.
  We cannot execute /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home/bin/java
运行OSX小牛


知道Maven为什么忽略JAVA_HOME吗?

一位同事告诉我问题出在哪里。他不想要代表积分,所以我只是为任何可能通过谷歌找到这一点的人发布答案

解决办法是

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home

显然,不管出于什么原因,maven都有自己的配置文件。使用上述值创建上述文件立即修复了问题:

:~ > mvn -version
Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-11T16:58:10-04:00)
Maven home: /usr/local/Cellar/maven/3.2.3/libexec
Java version: 1.8.0_25, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.9.5", arch: "x86_64", family: "mac"

我通过添加

export JAVA_HOME=“$(/usr/libexec/JAVA_HOME)”

~/.mavenrc


苹果建议使用
/usr/libexec/java_home
而不是使用java的整个路径

非常有用的信息,这只适用于maven3,对吗?我无法回答,因为我没有在mac上运行pre-maven3在mac sierra上用maven 2.2.1修复了这个问题,我找不到
~/.mavenrc
。我必须创建它吗?如果它不在那里,那么是的,创建它。