Dor*_*rin 6 spring spring-boot graalvm graalvm-native-image
我正在尝试将 Spring Boot 应用程序编译为本机应用程序并使用 docker 运行它。我正在使用 spring-graalvm-native 版本 0.8.5 和 Spring Boot 版本 2.4.1。我正在尝试使用 spring-boot-maven-plugin 使用以下命令构建 docker 容器:
mvn spring-boot:build-image
Run Code Online (Sandbox Code Playgroud)
在代码中,我想从资源中读取文件,并尝试像这样加载它:
@Value("classpath:my.json")
Resource resourceFile;
Run Code Online (Sandbox Code Playgroud)
编译步骤工作正常,但问题是当我运行 docker 映像时 my.json 文件未加载,无法找到它。
我运行native-image-agent并生成 META-INF 文件夹,其中 resources-config.json 文件添加了 my.json 模式。
我还尝试配置 spring-boot-maven-plugin 并添加:
-H:IncludeResources='.*/my.json$'
Run Code Online (Sandbox Code Playgroud)
但是这些配置都不起作用,你能帮我找出问题所在吗?
此致
项目结构:
RuntimeHintsRegistrar
我可以使用GraalVM Native Image Support doc使其工作。
创建一个实现RuntimeHintsRegistrar
:
public class HintsRegistrar implements RuntimeHintsRegistrar {
@Override
public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
hints.resources().registerPattern("my.json");
}
}
Run Code Online (Sandbox Code Playgroud)
并将其用于您的DemoApplication.java
:
@SpringBootApplication
@ImportRuntimeHints(HintsRegistrar.class)
public class DemoAppplication {
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1324 次 |
最近记录: |