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

使用Paketo Buildpacks Maven插件构建Spring Boot 3.1.5镜像失败

解决Spring Boot Build Image时的依赖下载与JRE问题

可能原因分析

  • unsupported protocol scheme 错误:多是Maven仓库配置的协议不兼容(如HTTP协议被仓库禁用、本地仓库路径格式错误),或是Buildpack拉取镜像时的网络/协议问题。
  • 无可用JRE提示:Paketo Buildpack无法找到对应版本的JRE镜像,可能是版本不兼容、镜像源无法访问或环境变量配置有误。

具体解决步骤

1. 修复Maven仓库协议配置

检查Maven的settings.xml(路径通常为~/.m2/settings.xml或Maven安装目录下的conf/settings.xml):

  • 确保所有<mirrors>中的仓库URL使用HTTPS协议(当前主流Maven仓库已不再支持HTTP)。
  • 若配置了本地仓库,确认路径格式正确,示例:file:///Users/yourname/.m2/repository(需三个斜杠开头)。

2. 配置Buildpack国内镜像源(解决网络访问问题)

如果是无法访问Docker Hub导致JRE镜像下载失败,在pom.xml的spring-boot-maven-plugin中添加国内镜像环境变量:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <excludes>
            <exclude>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </exclude>
        </excludes>
        <image>
            <env>
                <BP_JVM_VERSION>21</BP_JVM_VERSION>
                <!-- 阿里云镜像源示例 -->
                <BP_IMAGE_REGISTRY>registry.cn-hangzhou.aliyuncs.com</BP_IMAGE_REGISTRY>
                <BP_BUILDPACK_REGISTRY>registry.cn-hangzhou.aliyuncs.com/paketo-buildpacks</BP_BUILDPACK_REGISTRY>
            </env>
        </image>
    </configuration>
</plugin>

3. 明确指定兼容的Buildpack版本

Spring Boot 3.1.5需搭配支持Java 21的Paketo JVM Buildpack版本,可在配置中明确指定:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <excludes>
            <exclude>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </exclude>
        </excludes>
        <image>
            <env>
                <BP_JVM_VERSION>21</BP_JVM_VERSION>
            </env>
            <buildpacks>
                <!-- 指定支持Java 21的Buildpack版本 -->
                <buildpack>paketo-buildpacks/java:8.12.0</buildpack>
            </buildpacks>
        </image>
    </configuration>
</plugin>

4. 清理缓存后重试

  • 清理Maven本地缓存:执行 mvn clean install -U
  • 清理Docker缓存(谨慎操作,会删除未使用的镜像):执行 docker system prune -a
  • 重新运行构建命令:mvn spring-boot:build-image

5. 检查代理配置

若环境需要代理,确保Maven和Docker都配置正确:

  • Maven的settings.xml中添加代理:
<proxies>
    <proxy>
        <id>proxy-config</id>
        <active>true</active>
        <protocol>http</protocol>
        <host>your-proxy-host</host>
        <port>your-proxy-port</port>
        <nonProxyHosts>localhost|127.0.0.1|*.your-internal-domain.com</nonProxyHosts>
    </proxy>
</proxies>
  • Docker代理:在Docker设置中配置HTTP/HTTPS代理,或修改~/.docker/config.json添加代理信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 13:05:30