Maven编译报错:invalid flag: --release,JDK1.8环境下如何解决?
解决Maven编译错误:invalid flag: --release
问题根源
maven-compiler-plugin 3.11.0默认会使用--release参数指定JDK版本,但该参数是Java 9及以上版本才支持的,你的本地环境为Java 8,因此触发此编译错误。
解决方案
两种修复方式任选其一即可:
方式1:降级maven-compiler-plugin版本
修改项目pom.xml(父pom或对应子项目pom)中的maven-compiler-plugin配置,将版本降至兼容Java 8的稳定版本(如3.8.1,为最后一批完美适配Java 8且不会自动添加--release参数的版本):
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
方式2:显式禁用--release参数
若不想降级插件版本,可在配置中强制关闭--release参数的使用,同时指定source和target为1.8:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>1.8</source> <target>1.8</target> <release>false</release> </configuration> </plugin> </plugins> </build>
验证操作
修改配置后,执行以下命令清理并重新编译:
mvn clean compile
内容的提问来源于stack exchange,提问作者sfio
相关产品推荐
相关产品推荐

