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

Heroku构建Maven项目时出现invalid target release:17错误求助

解决Heroku上Maven项目编译错误:invalid target release: 17

问题分析

本地已配置Java 17与Maven 3.6.3,pom.xml也指定了<java.version>17</java.version>,但Heroku构建时仍抛出编译目标版本无效的错误——核心原因是Heroku默认的Java运行时版本可能不是17,本地环境与Heroku构建环境的Java版本不匹配。

解决方案

1. 添加system.properties指定Heroku Java版本

在项目根目录创建system.properties文件,写入:

java.runtime.version=17

该文件会强制Heroku使用Java 17完成应用的构建与运行。

2. 显式配置Maven编译器插件(可选)

尽管Spring Boot父项目会自动管理编译器插件版本,仍可显式指定编译参数确保版本一致,在pom.xml的<build><plugins>节点中添加:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.10.1</version>
    <configuration>
        <source>17</source>
        <target>17</target>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

3. 清理Heroku构建缓存

若旧缓存导致版本兼容问题,可通过Heroku CLI清理缓存:

heroku builds:cache:purge -a your-app-name

将your-app-name替换为你的Heroku应用名称,之后重新触发构建。

验证步骤

  1. 提交system.properties及修改后的pom.xml到Git仓库
  2. 重新部署至Heroku:git push heroku main
  3. 查看构建日志确认Java版本已切换为17

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 09:10:33