如何将maven-compiler-plugin配置为适配JDK 17
解决maven-compiler-plugin适配JDK 17的编译错误
错误核心原因
你遇到的release version 17 not supported错误,本质是Maven当前使用的JDK版本低于17。从错误栈中的java.lang.reflect.Method.invoke (Method.java:566)可以看出,实际运行Maven的是JDK 8,而JDK 8的javac编译器无法识别JDK 17的版本参数,即使升级maven-compiler-plugin版本也无法解决。
解决步骤
1. 确认Maven使用的JDK版本
执行以下命令查看Maven关联的Java版本:
mvn -v
输出中需确保Java version显示为17.x.x。若不符合,需:
- 系统环境变量中设置
JAVA_HOME指向JDK 17的安装目录 - 终端临时指定:
export JAVA_HOME=/path/to/jdk17(Linux/macOS)或set JAVA_HOME=C:\path\to\jdk17(Windows) - IDE配置:在IDE的Maven运行设置里,指定JRE为JDK 17
2. 正确配置maven-compiler-plugin
升级插件到支持JDK 17的版本(3.11.0及以上已支持JDK 17),并推荐使用<release>标签替代source和target,确保编译版本一致:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <!-- 或更高版本如3.12.1 --> <configuration> <release>17</release> <!-- 统一指定编译版本,替代source和target --> </configuration> </plugin>
3. 额外检查项
- IDE项目配置:确保Project Structure中的Project SDK和Module SDK都设置为JDK 17
- 全局Maven配置:检查
settings.xml中是否存在<maven.compiler.source>/<maven.compiler.target>等全局属性,避免覆盖项目配置
内容的提问来源于stack exchange,提问作者HappyProgrammer
相关产品推荐
相关产品推荐

