You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maven构建的Java8应用升级Java11报invalid target release错误如何解决

问题排查与解决方案

一、排查maven-compiler-plugin引入来源的方法

  • 执行mvn help:effective-pom,输出内容会展示最终生效的全量POM配置,直接搜索maven-compiler-plugin就能看到版本和对应的继承来源。
  • 执行mvn dependency:tree -Dincludes=org.apache.maven.plugins:maven-compiler-plugin -Dscope=plugin,可以直接输出该插件的依赖引入链路,明确是哪个父POM或者依赖组件引入的对应版本。

二、实际报错原因

你遇到的报错和maven-compiler-plugin 3.8.1的兼容性无关,该版本完全支持Java 11编译。报错的核心原因是Java版本号的写法错误:Java 8及之前的版本号采用1.x格式(例如Java 8对应1.8),从Java 9开始版本号直接使用主版本号命名,Java 11对应的正确版本号是11,而非1.11,你配置的1.11无法被编译器识别,才触发了invalid target release的错误。

三、解决方案

  1. 修改POM中的版本号配置,将properties节点下的java.version值改为11:
<properties>
  <java.version>11</java.version>
  <maven.compiler.source>${java.version}</maven.compiler.source>
  <maven.compiler.target>${java.version}</maven.compiler.target>
  <!-- 建议额外新增release参数,避免环境变量中不同JDK版本的影响 -->
  <maven.compiler.release>${java.version}</maven.compiler.release>
</properties>
  1. (可选)显式声明maven-compiler-plugin版本,避免后续父POM更新带来的版本变动:
<build>
  <pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
      </plugin>
    </plugins>
  </pluginManagement>
</build>
  1. 验证本地Maven绑定的JDK版本,执行mvn -v检查输出的Java版本是否为11,若不符合需要调整JAVA_HOME环境变量指向Java 11的安装路径。

内容的提问来源于stack exchange,提问作者hotmeatballsoup

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 00:57:06