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

Java从1.8升级至11.0.11后Maven编译target level报错如何解决

错误根因

该报错的核心原因是执行Maven编译的运行环境不支持Java 11的目标版本,要么是Maven本身绑定的JDK版本还是1.8,要么是编译插件的参数被上层配置覆盖,导致编译器只能识别最高1.8的目标级别。

排查步骤
  • 执行命令mvn -v查看Maven运行时绑定的JDK版本,确认输出的Java版本是否为11.0.11。如果显示为1.8.x版本,说明Maven运行依赖的JDK没有正确切换。
  • 检查当前项目的父POM、全局settings.xml里的profile配置,确认是否存在强制配置maven-compiler-plugin的<source>、<target>参数为1.8的逻辑,这类上层配置优先级高于子模块的配置。
  • 如果在IDE中执行编译,检查IDE的Maven运行配置,确认关联的JRE/JDK版本是否为11。
解决方法
  • 切换Maven运行的JDK版本为11

    命令行场景:修改JAVA_HOME环境变量指向本地JDK11的安装路径,重新执行mvn -v确认版本正确后再执行编译命令。
    IDE场景(以IDEA为例):打开「设置 -> 构建、执行、部署 -> 构建工具 -> Maven -> 运行程序」,将JRE选项选择为本地安装的JDK11,保存配置后重新编译。

  • 升级并修正maven-compiler-plugin配置,避免参数被覆盖,升级到更高版本的插件兼容性更好:
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.11.0</version>
  <configuration>
    <source>11</source>
    <target>11</target>
    <release>11</release>
  </configuration>
</plugin>
  • 如果存在父POM强制覆盖编译参数的情况,可以在当前模块的插件配置中增加<override>true</override>参数,强制使用当前模块的配置覆盖上层配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:18:05