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

如何在不使用Oracle GraalVM及Oracle许可的情况下构建Spring Boot 3.x原生镜像

Spring Boot 3 原生可执行文件的免费许可替代方案

1. 切换到GraalVM Community Edition (CE)

Spring Boot完全支持使用GraalVM Community Edition构建原生镜像,这是Oracle维护的开源免费版本,无商业许可限制。配置方式有两种:

  • 本地环境安装GraalVM CE后,直接执行spring-boot:build-image(Maven)或bootBuildImage(Gradle)任务,插件会自动检测并使用本地的GraalVM CE环境,无需依赖默认的Oracle GraalVM buildpack。
  • 若在CI/CD环境中使用,可自定义buildpack,替换为基于GraalVM CE的镜像。比如使用Paketo的社区版buildpack,在构建配置中指定:
    <!-- Maven配置示例 -->
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
            <image>
                <builder>paketobuildpacks/builder-jammy-base:latest</builder>
                <buildpacks>
                    <buildpack>paketobuildpacks/java-native-image</buildpack>
                </buildpacks>
            </image>
        </configuration>
    </plugin>
    

2. 基于OpenJDK的替代工具

除了GraalVM CE,还有这些免费开源的工具可选:

  • Mandrel:作为GraalVM CE的下游发行版,虽由Quarkus团队维护,但完全兼容Spring Boot。你可以本地安装Mandrel后,配置Spring Boot插件指向该环境,或在buildpack中使用Mandrel的镜像。
  • Azul Zulu GraalVM:Azul提供的免费GraalVM发行版,基于OpenJDK构建,无商业许可约束,Spring Boot插件可直接识别并使用它构建原生镜像。

3. Spring Boot官方的支持说明

Spring Boot团队始终支持开源免费的JDK和GraalVM版本,默认buildpack使用Oracle GraalVM只是可选配置之一,并非强制要求。官方文档中虽未单独针对许可问题做专项说明,但在原生镜像的构建配置章节中,明确支持自定义GraalVM环境和buildpack,这些配置即可用来规避Oracle许可限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:02:18