需要帮忙??致命错误编译:无效的目标版本:1.8

时间:2018-09-26 16:09:18

标签: java maven google-app-engine maven-release-plugin

我想将我的Maven项目部署到Google Appengine,但是其中存在错误

[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @HospitalReservationSystem ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/rof/src/github.com/jessezzyy/Hospital-Reservation-System/target/HospitalReservationSystem-1.0-SNAPSHOT/WEB-INF/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.062 s [INFO] Finished at: 2018-09-26T15:17:24Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project HospitalReservationSystem: Fatal error compiling: invalid target release: 1.8 -> [Help 1]

maven项目完全使用java8,而我的java jdk也在此处输入1.8图像描述

ZIJIANdeMacBook-Pro:JavaVirtualMachines Jesse$ echo $JAVA_HOME/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/HomeZIJIANdeMacBook-Pro:JavaVirtualMachines Jesse$ java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

我尝试将1.7更改为1.8,但显示错误:

Execution default-cli of goal com.google.cloud.tools:appengine-maven-plugin:1.3.2:deploy failed: Non zero exit: 1 -> [Help 1]

2 个答案:

答案 0 :(得分:1)

虽然这是很老的帖子,但我想我会分享我的快速修复方法供其他人使用: 我也遇到过类似的问题,其中 pom.xml 指向 1.8 而 JAVA_HOME 也指向 1.8 Maven 构建通过 Eclipse 失败。

为了解决这个问题,我所要做的就是在 JRE 选项卡中使用 Alternate JRE 选项将 JRE 版本更改为 1.8,如附件 screen shot 所示。

答案 1 :(得分:0)

首先,必须确保已安装Java 8及其对应的编译器。

通过执行以下代码进行测试:

java -version

 javac -version

 mvn -version

它们应该是相同的版本。有时Java指向正确的版本,但是javac版本可能指向旧的jdk。在这种情况下,您可以执行以下步骤:

A:确保符号链接指向正确的jdk。如果不是,只需将其删除并为您的jdk重新创建一个新的。 代码:

cd /System/Library/Frameworks/JavaVM.framework/Versions/
rm CurrentJDK
ln -s /Library/Java/JavaVirtualMachines/<jdk version>.jdk/Contents/ CurrentJDK

B:从扩展名中删除tools.jar,因为它可能与旧版本有关: 代码:

cd /Library/Java/Extensions
-rw-r--r--  1 root  admin  15286304 Jan 14  2015 tools.jar

删除此:

sudo rm -rf /Library/Java/Extensions

此外,一旦安装1.8 jdk,还需要确保将%JAVA_HOME设置为1.8。请记住,无效的目标发行版是指jdk版本。

另一种解决方案是派生maven-compiler-plugin并将完整路径设置为正确的Java编译器,如下所示:

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <verbose>true</verbose>
        <fork>true</fork>
        <executable>C:\Program Files\Java\jdk1.8.0_79\bin\javac</executable>
    </configuration>
</plugin>

此问题已与您的问题的有用答案和可能的解决方法一起发布:Click Here

这是先前发布的关于同一问题的另一个问题:Click Here