致命错误编译:无效目标释放:1.8 – >

类似的问题,如发布在无效目标发布:1.7,但在跟随博客后,我的问题仍然没有得到解决。

无法执行目标org.apache.maven.plugins:maven-compiler-plugin:3.1:编译(默认编译)项目hm_app:致命错误编译:无效目标版本:1.8 – > [Help 1]

当我遇到这个问题时,我正在作为教程 。

abt java & mvn C:\mvn>echo %JAVA_HOME% C:\mvn>echo %JRE_HOME% C:\mvn>echo %MAVEN_HOME% yields 

输出

 C:\Program Files\Java\jdk1.7.0_51 C:\Program Files\Java\jre7 C:\apache-maven-3.0.4 

您已经将%JAVA_HOME为jdk 1.7,但是您正在尝试使用1.8进行编译。 安装jdk 1.8并确保你的%JAVA_HOME指向那个目标版本,或者把目标版本降到1.7。

无效的目标释放:1.8

目标版本是指jdk版本。

把值放在插件中:

 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> 

错误是使用:

 <source>${java.version}</source> <target>${java.version}</target> 

在我的情况下,maven“运行configuration”使用了错误的JRE(1.7)。 一定要检查运行 – >运行configuration – >(选项卡)JRE是一些jdk1.8.x.

把它放在你的.profile中会dynamic地处理你的$JAVA_HOME

 export JAVA_HOME=$(/usr/libexec/java_home) 

之后closures你的shell,打开一个新的testing

 echo $JAVA_HOME 

它应该显示类似的东西

 /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home 

如果不是 ,请删除启动脚本中的其他JAVA_HOME分配。 请记住,这些启动脚本以a开头. 所以它们是隐藏的,在使用*通配符时不会被包含,例如,如果你想grep你的主目录中的所有文件,你需要:

 grep -s JAVA_HOME ~/.* --exclude=.bash_history 

问题解决了,因为我的JDK指向1.7,JRE指向1.8。 检查命令提示我input

 java -version 

 javac -version. 

两者应该是一样的。

我面临的问题是,我能够从命令提示符,而不是从Eclipse做一个maven生成。在eclipse中为我工作的是,我改变了运行configuration指向JDK内的JRE文件夹,而不是把它留在JDK文件夹只有按照standard.This解决scheme可能会为你工作,但尝试这个当且仅当所有的javapath是正确的,java和javac显示目前在pom.xml的目标相同的版本。