致命错误编译:无效目标释放: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的目标相同的版本。