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

Maven编译Spring Boot项目报错:invalid flag: --release 求助

问题根源

--release 参数是 Maven Compiler Plugin 3.6.0+ 引入的特性,用于指定编译目标的Java版本,但Java 8不支持这个参数。你遇到的问题大概率是Maven Compiler Plugin版本过高(即使你没在pom里显式配置,Spring Boot父依赖或默认插件版本可能自动引入了高版本插件),或者本地Maven/Java环境的兼容性不匹配。


解决方案1:显式指定Maven Compiler Plugin版本及编译参数

不管用Java 8还是17,都建议在pom.xml里显式配置编译插件,避免依赖默认版本导致的问题:

针对Java 8的配置

<build>
    <plugins>
        <!-- 指定兼容Java8的Compiler插件版本 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <!-- Java8不支持--release,用source和target -->
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <!-- 如果用Spring Boot,指定对应版本的插件 -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.7.14</version> <!-- 2.x版本兼容Java8 -->
        </plugin>
    </plugins>
</build>

针对Java 17的配置

<properties>
    <java.version>17</java.version>
</properties>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.11.0</version> <!-- 支持Java17的版本 -->
            <configuration>
                <release>17</release>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>3.1.4</version> <!-- 3.x版本适配Java17+ -->
        </plugin>
    </plugins>
</build>

解决方案2:匹配Maven与Java版本的兼容性

Maven 3.5.4对Java 17的支持很差,Maven 3.8.x及以上版本才完全兼容Java 11/17:

  • 如果用Java 8:Maven 3.5.4是兼容的,但要确保Compiler插件版本不高于3.8.1
  • 如果用Java 11/17:必须升级Maven到3.8.6或更高版本(推荐3.9.x)

解决方案3:确认本地环境配置正确

  1. 执行mvn -v检查Maven实际使用的JDK版本,确保和你预期的一致:
$ mvn -v
Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)
Maven home: /opt/maven
Java version: 17.0.9, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-17-oracle
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.15.0-88-generic", arch: "amd64", family: "unix"
  1. 检查JAVA_HOME环境变量,确保指向当前要使用的JDK目录:
$ echo $JAVA_HOME
/usr/lib/jvm/java-17-oracle
  1. 如果用alternatives配置了JDK,确认选中的是目标版本:
$ alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           java-17-oracle.x86_64 (/usr/lib/jvm/java-17-oracle/bin/java)
   2           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-1.el8_8.x86_64/bin/java)

Enter to keep the current selection[+], or type selection number:

解决方案4:清理Maven缓存

执行以下命令强制清理缓存并重新下载依赖,避免旧插件缓存导致的问题:

mvn clean install -U

补充:不要轻易换构建工具

你遇到的问题完全可以通过调整Maven配置和环境解决,没必要直接换Gradle/Ant。先按上面的步骤排查,90%概率能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 00:38:20