【问题标题】:Need help?? Fatal error compiling: invalid target release: 1.8需要帮忙??致命错误编译:无效的目标版本:1.8
【发布时间】:2019-03-02 11:43:05
【问题描述】:

我想将我的 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]

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      首先,您必须确保已安装 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

      【讨论】:

      • 对不起,它也不适合我。我将源和目标版本更改为 1.7,但出现新错误:目标 com.google.cloud.tools:appengine-maven-plugin:1.3.2:deploy failed: Non zero exit: 1
      • 在这种情况下,信息越多,我们就越能解决问题。如果您可以提供更多详细信息,例如来自失败部署的完整日志和一些相关配置文件,则更容易缩小问题范围。另外,您是在标准环境还是 Flex 环境中部署它?
      猜你喜欢
      • 2015-04-02
      • 2015-06-14
      • 2015-10-14
      • 2017-10-29
      • 2020-01-12
      • 2021-04-10
      • 2018-08-03
      • 2015-06-01
      • 2022-09-26
      相关资源
      最近更新 更多