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

Spring Boot 3.4.4构建报错:无效的Buildpack引用gcr.io/paketo-buildpacks/adoptium

修复Spring Boot 3.4.4 + Cloud Native Buildpacks构建错误

问题背景

我的Spring Boot(3.4.4)应用使用Cloud Native Buildpacks构建时失败,核心错误为Invalid buildpack reference 'gcr.io/paketo-buildpacks/adoptium'。

配置信息

<execution>
    <configuration>
        <image>
            <builder>paketobuildpacks/builder-jammy-base</builder>
            <env>
                <BP_SPRING_CLOUD_BINDINGS_DISABLED>true</BP_SPRING_CLOUD_BINDINGS_DISABLED>
                <BP_OCI_DESCRIPTION>${project.description}</BP_OCI_DESCRIPTION>
                <BP_OCI_VENDOR>${project.organization.name}</BP_OCI_VENDOR>
                <BP_OCI_CREATED>${maven.build.timestamp}</BP_OCI_CREATED>
                <BP_OCI_SOURCE>${CI_PROJECT_URL}</BP_OCI_SOURCE>
                <BP_OCI_REVISION>${CI_COMMIT_SHA}</BP_OCI_REVISION>
                <BP_HEALTH_CHECKER_ENABLED>true</BP_HEALTH_CHECKER_ENABLED>
                <BPE_LANG>en_US.UTF-8</BPE_LANG>​
            </env>
            <buildpacks>
                <buildpack>gcr.io/paketo-buildpacks/adoptium</buildpack>
                <buildpack>urn:cnb:builder:paketo-buildpacks/java</buildpack>
                <buildpack>gcr.io/paketo-buildpacks/health-checker:latest</buildpack>
            </buildpacks>
            <createdDate>${maven.build.timestamp}</createdDate>
        </image>
        <docker>
            <publishRegistry>
                <url>${docker.publishRegistry.url}</url>
                <username>${docker.publishRegistry.username}</username>
                <password>${docker.publishRegistry.password}</password>
            </publishRegistry>
        </docker>
    </configuration>
    <goals>
        <goal>build-image-no-fork</goal>
    </goals>
</execution>

错误日志

Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default of goal org.springframework.boot:spring-boot-maven-plugin:3.4.4:build-image-no-fork failed: Invalid buildpack reference 'gcr.io/paketo-buildpacks/adoptium'
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:133)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
Caused by: java.lang.IllegalArgumentException: Invalid buildpack reference 'gcr.io/paketo-buildpacks/adoptium'
    at org.springframework.boot.buildpack.platform.build.BuildpackResolvers.resolve (BuildpackResolvers.java:77)
    at org.springframework.boot.buildpack.platform.build.BuildpackResolvers.resolveAll (BuildpackResolvers.java:64)
    at org.springframework.boot.buildpack.platform.build.Builder.getBuildpacks (Builder.java:168)
    at org.springframework.boot.buildpack.platform.build.Builder.build (Builder.java:114)
    at org.springframework.boot.maven.BuildImageMojo.buildImage (BuildImageMojo.java:269)
    at org.springframework.boot.maven.BuildImageMojo.execute (BuildImageMojo.java:258)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)

调研信息

  • 自4月以来无Adoptium Buildpack新版本发布,当前稳定版本为v12.1.2
  • 本地已下载的Adoptium Buildpack镜像版本和哈希值验证正确,执行docker image inspect d097b016849b确认版本为12.1.2且哈希匹配

修复方案

方案1:移除显式指定的Adoptium Buildpack(推荐)

Paketo的Java Buildpack(urn:cnb:builder:paketo-buildpacks/java)已经内置了Adoptium Buildpack作为依赖组件,无需单独声明。修改<buildpacks>配置如下:

<buildpacks>
    <buildpack>urn:cnb:builder:paketo-buildpacks/java</buildpack>
    <buildpack>gcr.io/paketo-buildpacks/health-checker:latest</buildpack>
</buildpacks>

这种方式能让Java Buildpack自动管理Adoptium的版本,避免版本冲突和引用格式问题。

方案2:修正Adoptium Buildpack的引用格式

如果必须显式指定Adoptium Buildpack,需要使用符合CNB规范的完整引用格式:

  • 方式一:指定具体版本号
<buildpack>gcr.io/paketo-buildpacks/adoptium:12.1.2</buildpack>
  • 方式二:使用Buildpack ID格式
<buildpack>paketo-buildpacks/adoptium</buildpack>

Spring Boot 3.4.x的Buildpack客户端对引用格式校验更严格,无版本号的短域名引用不再被支持。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 02:50:56