如何为SpringBoot GraalVM原生镜像添加-H参数进行构建
如何为SpringBoot GraalVM原生镜像添加-H参数进行构建
我完全懂你遇到的困扰——Spring Boot的GraalVM原生插件确实帮我们封装了大部分构建逻辑,但想要加入像-H:IncludeResources这类自定义的GraalVM原生镜像参数,其实有两种简单易行的方式,给你详细说明:
方式一:在pom.xml中永久配置参数(推荐)
如果你希望每次构建都自动带上这些参数,可以直接修改native-maven-plugin的配置,添加<buildArgs>节点来指定你的-H参数:
<build> <plugins> <plugin> <groupId>org.graalvm.buildtools</groupId> <artifactId>native-maven-plugin</artifactId> <configuration> <buildArgs> <!-- 这里可以添加多个-H参数,每个参数单独占一个<buildArg>标签 --> <buildArg>-H:IncludeResources=**/*.properties,**/*.xml</buildArg> <!-- 比如如果还要加其他参数,像启用HTTP协议支持,可以再加一行 --> <!-- <buildArg>-H:EnableURLProtocols=http</buildArg> --> </buildArgs> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
配置完成后,你继续执行原来的构建命令mvn -Pnative native:compile,插件就会自动把这些参数传递给GraalVM的原生镜像构建过程了。
方式二:命令行临时传递参数
如果只是临时测试某个参数,不想修改pom.xml文件,也可以直接在构建命令里通过-Dnative.build.args参数来传递:
mvn -Pnative native:compile -Dnative.build.args="-H:IncludeResources=**/*.properties"
如果有多个-H参数,只需要用空格分隔开就行:
mvn -Pnative native:compile -Dnative.build.args="-H:IncludeResources=**/*.properties -H:EnableURLProtocols=http"
另外提一句:Spring Boot的GraalVM插件已经默认处理了大部分框架相关的资源和配置,但针对你自定义的资源路径,用上面的方式添加-H:IncludeResources就完全能满足需求啦。
备注:内容来源于stack exchange,提问作者PatPanda
相关产品推荐
相关产品推荐

