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

使用Heroku部署Java SpringBoot应用时遇编译错误求助

问题分析与解决方案

问题根源

你遇到的无效标志:--release错误,核心是版本不兼容:

  • Spring Boot 3.1.0 最低要求Java 17及以上,但你的pom.xml指定了Java 1.8
  • Maven Compiler Plugin 3.11.0(Spring Boot 3.x默认引入)会自动用--release编译参数,而这个参数是Java 9才新增的,Java 8完全不支持,直接导致编译失败

解决方案(二选一)

方案1:升级Java版本到17(推荐,适配Spring Boot 3.x生态)

修改pom.xml的Java配置,同时告知Heroku使用Java 17:

  1. 更新pom.xml的properties段:
<properties>
    <java.version>17</java.version>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
</properties>
  1. 在项目根目录新建system.properties文件,添加以下内容强制Heroku使用Java 17:
java.runtime.version=17

方案2:降级Spring Boot到2.x(保留Java 1.8)

如果必须用Java 1.8,将Spring Boot版本降到支持Java 8的2.7.x系列(2.7.x是Spring Boot 2的最后稳定分支):
修改pom.xml里的parent版本:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.15</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

这个版本的Spring Boot会适配Java 8,默认的Maven Compiler Plugin也不会使用--release参数,编译可正常通过。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 23:12:36