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

Cloud Native Buildpacks适配JDK21:设置方法与构建包查询

问题背景

执行pack builder suggest命令得到以下构建器列表:

Google: gcr.io/buildpacks/builder:v1
Heroku: heroku/builder:20
Heroku: heroku/builder:22
Paketo Buildpacks: paketobuildpacks/builder-jammy-base
Paketo Buildpacks: paketobuildpacks/builder-jammy-buildpackless-static
Paketo Buildpacks: paketobuildpacks/builder-jammy-full
Paketo Buildpacks: paketobuildpacks/builder-jammy-tiny

测试Heroku的2个构建器、Google构建器及jammy-base构建器时,出现编译错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile (default-compile) on project hubjet: Fatal error compiling: error: release version 21 not supported -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

推测这些构建包默认不支持JDK 21,尝试执行pack build test-img --builder paketobuildpacks/builder-jammy-buildpackless-static --buildpack paketo-buildpacks/java仍未解决问题,需解答两个疑问:

  • 如何设置构建包使用JDK 21版本?
  • 在哪里可以查看所有可用的Paketo JDK构建包(即--buildpack命令可用的构建包名称)?

解决方法

1. 指定Paketo构建包使用JDK 21

Paketo Java构建包支持通过环境变量指定JDK版本,构建时添加BP_JVM_VERSION变量即可指定JDK 21:

pack build test-img \
  --builder paketobuildpacks/builder-jammy-buildpackless-static \
  --buildpack paketo-buildpacks/java \
  --env BP_JVM_VERSION=21

如果是Maven项目,需同步确保pom.xml中maven-compiler-plugin的版本配置与指定JDK版本一致,示例配置:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.11.0</version>
  <configuration>
    <release>21</release>
  </configuration>
</plugin>

2. 查看可用的Paketo JDK构建包

有两种方式获取可用的Paketo Java相关构建包:

  • 执行pack buildpack suggest命令,该命令会列出官方维护的所有构建包,其中包含各类Java构建包;
  • 官方维护的Java相关构建包均在paketo-buildpacks命名空间下,常见的有:
    • paketo-buildpacks/java:通用Java构建包,包含JDK、构建工具及运行时支持
    • paketo-buildpacks/jdk:仅提供JDK环境的轻量构建包
    • paketo-buildpacks/maven:专门处理Maven构建流程的构建包
    • paketo-buildpacks/gradle:专门处理Gradle构建流程的构建包

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 01:45:15