【发布时间】:2014-09-02 13:26:21
【问题描述】:
我似乎无法让 Maven 使用 Java 1.8。使用 1.8 作为目标会出现以下错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile
(default-compile) on project csaro: Fatal error compiling: invalid target
release: 1.8 -> [Help 1]
错误的原因很明显:Maven 没有使用正确的 Java 版本:
$ mvn -version
Apache Maven 3.2.2 (45f7c06d68e745d05611f7fd14efb6594181933e; 2014-06-17T07:51:42-06:00)
Maven home: /usr/local/Cellar/maven/3.2.2/libexec
Java version: 1.7.0_51, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.9.2", arch: "x86_64", family: "mac"
但是安装的Java版本应该是1.8:
$ java -version
java version "1.8.0_20-ea"
Java(TM) SE Runtime Environment (build 1.8.0_20-ea-b22)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b21, mixed mode)
并且设置了 JAVA_HOME:
$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home
我还尝试了command here(它创建了mavenrc)。我试过几次重启电脑,并验证了env var设置正确(它设置在.bash_profile中)。
Maven 是随 Homebrew 一起安装的。
Java 1.8 在 Eclipse(使用 m2e)中运行良好。我只是无法让 Maven 在命令行上工作。
【问题讨论】:
-
jdk1.8.0_20还没有发布,我在目录名中没有看到ea,你确定目录存在吗?
-
@JigarJoshi,这是here的抢先体验版。
-
是否有java编译器
ls -la /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin/javac?