Mac如何更改maven的java版本

本文出於個人獨立博客:Geeekrjava

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.2:compile (default-compile) on project api: Fatal error compiling: invalid target release: 1.7 -> [Help 1]

根據錯誤提示invalid target release: 1.7,無效的目標版本。shell

###查看pom.xml文件apache

<plugin>
	<artifactId>maven-compiler-plugin</artifactId>
          <version>3.2</version>
          <configuration>
            <source>1.7</source>
            <target>1.7</target>
          </configuration>
	</plugin>

根據配置能夠看出maven-compiler-plugin的目標版本是JDK 1.7;api

###查看JDK版本maven

➜  ~  java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)

根據上面信息能夠看出個人jdk版本也是1.7;ui

那麼問題出在哪裏了呢?3d

###查看Maven信息code

➜  ~  mvn -v
Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-15T01:37:52+08:00)
Maven home: /usr/local/Cellar/maven/3.2.1/libexec
Java version: 1.7.0_71, vendor: Oracle Corporation
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.10", arch: "x86_64", family: "mac"

終於真想大白了,原來maven引用的是1.6的版本,那麼如何修改配置爲1.7版本呢?orm

原來,maven讀兩個配置文件,/etc/mavenrc~/.mavenrc。兩個文件默認是沒有的,能夠任意選擇一個作修改,我選擇我用戶目錄下的~/.mavenrc,將下面代碼寫入。xml

JAVA_HOME=`/usr/libexec/java_home`

若是你在Mac上安裝了多個版本的JDK,而又不想改變默認的JDK版本,那麼你只須要在配置後面加上版本號便可,好比:

JAVA_HOME=`/usr/libexec/java_home -v 1.7`

在Mac中/usr/libexec/java_home表示java_home的一個鏈接文件。

➜  ~  ll /usr/libexec/java_home
lrwxr-xr-x  1 root  wheel    79B 11 14 16:39 /usr/libexec/java_home -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home

而後在執行

➜  ~  mvn -v
Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-15T01:37:52+08:00)
Maven home: /usr/local/Cellar/maven/3.2.1/libexec
Java version: 1.7.0_71, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.10", arch: "x86_64", family: "mac"

而後在install項目就沒有這個錯誤了。

相關文章
相關標籤/搜索