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

Spring Native中Maven构建如何自定义native-image生成可执行文件名

回答

native-maven-plugin是Spring Native构建原生可执行文件依赖的底层插件,提供了专门的配置项支持自定义生成的原生二进制文件名,不需要修改pom中的<artifactId>。注意spring-boot-maven-plugin的<finalName>配置仅对Spring Boot打出的fat jar包生效,不会透传给原生镜像构建流程,修改这个参数无法改变原生可执行文件的名称。

具体配置

新版本插件(GraalVM Native Build Tools 0.9.12及以上)

直接在native-maven-plugin的配置块中添加<outputName>参数,设置的值就是最终生成的原生可执行文件名:

<plugin>
    <groupId>org.graalvm.buildtools</groupId>
    <artifactId>native-maven-plugin</artifactId>
    <configuration>
        <outputName>my-custom-app</outputName>
    </configuration>
</plugin>

如果是使用Spring Boot官方提供的native profile(通过mvn native:compile -Pnative触发构建),直接把上述配置加到pom的plugins节点下即可,Spring Boot父POM已经统一管理插件版本,不需要额外声明版本号。

老版本插件

0.9.12之前的老版本插件没有提供outputName配置项,可以通过传递GraalVM原生构建参数实现同等效果:

<plugin>
    <groupId>org.graalvm.buildtools</groupId>
    <artifactId>native-maven-plugin</artifactId>
    <configuration>
        <buildArgs>
            <arg>-H:Name=my-custom-app</arg>
        </buildArgs>
    </configuration>
</plugin>

补充说明

  • 上述配置针对本地构建生成、存放在target目录下的原生可执行文件生效。
  • 如果通过mvn spring-boot:build-image -Pnative构建原生容器镜像,镜像内部的可执行文件命名同样遵循上述配置;如果需要自定义镜像的名称、标签,需要在spring-boot-maven-plugin的<image><name>节点下单独配置。
  • 配置完成后执行mvn clean native:compile,即可在target目录下看到自定义命名的可执行文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 10:12:16