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

将Spring Boot项目部署到Heroku时遇invalid target release:11报错求助

Fixing "invalid target release: 11" When Deploying Spring Boot to Heroku

Hey there, I’ve dealt with this exact Heroku deployment hiccup before—let’s walk through the fixes that usually resolve it:

1. Double-Check Your system.properties File

Heroku relies on this file to pick the correct Java runtime, so make sure:

  • It’s placed directly in your project root directory (not inside src or any subfolder)
  • The content is exactly java.runtime.version=11—no extra spaces, comments, or typos
  • You’ve committed it to Git (run git status to verify it’s tracked; if not, add it with git add system.properties then commit)

2. Update Your Maven Compiler Plugin Configuration

Your current config sets source and target to 11, but adding the release parameter ensures full Java 11 compatibility during compilation. Also, specifying a stable plugin version avoids unexpected behavior:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
        <source>11</source>
        <target>11</target>
        <release>11</release> <!-- Ensures consistent Java 11 bytecode -->
    </configuration>
</plugin>

3. Clear Caches (Local & Heroku)

Cached build artifacts often cause version mismatches:

  • First, clean your local Maven cache with:
    mvn clean install
    
  • Then, purge Heroku’s remote build cache using the Heroku CLI:
    heroku builds:cache:purge
    
  • Finally, force-push your code to Heroku to trigger a fresh build:
    git push heroku main -f
    

4. Remove Conflicting Dependency Versions

Some of your manually specified dependencies (like spring-jcl and spring-boot-starter-logging) have versions that don’t align with your Spring Boot parent (2.4.0). Let the Spring Boot parent manage these dependencies automatically by removing these lines from your pom.xml:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jcl</artifactId>
    <version>5.2.9.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-logging</artifactId>
    <version>2.3.6.RELEASE</version>
</dependency>

This prevents version conflicts that can throw off the compilation target.

5. Verify Heroku’s Java Detection in Build Logs

After pushing your code, check the Heroku build logs (run heroku logs --tail or view them in the Heroku dashboard) for lines mentioning "Java version". If it shows a version other than 11, that means Heroku isn’t picking up your system.properties file—double-check the file’s location and Git status.

These steps should resolve the "invalid target release: 11" error. If you still run into issues, share a snippet of your full Heroku build log, and we can dig deeper.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:00:24