如何在Quarkus本机映像中读取类路径资源?

时间:2019-04-26 07:34:40

标签: quarkus

我已经使用

将资源添加到类路径中
<additionalBuildArg>-H:IncludeResources=.*/kubernetes_auth.crt$</additionalBuildArg>
<additionalBuildArg>-H:Log=registerResource:verbose</additionalBuildArg>

构建图像时,我可以在日志中看到是否添加了图像

ResourcesFeature: registerResource: classes/kubernetes_auth.crt

但是,当我尝试使用以下在Java中运行的代码读取资源时,它将返回null

InputStream is = KubernetesResource.class.getResourceAsStream("/kubernetes_auth.crt");

我尝试过使用这些变体,但相同会返回null

Thread.currentThread().getContextClassLoader().getResourceAsStream("/kubernetes_auth.crt");
ClassLoader.getSystemClassLoader().getResourceAsStream("/kubernetes_auth.crt");
getClass().getResourceAsStream("classes/kubernetes_auth.crt");

Quuarkus 0.13.3和0.14.0版本以及Graal rc14,rc15,rc16版本

1 个答案:

答案 0 :(得分:0)

如发现的那样,您需要指定要加载的资源。

从Quarkus 1.8.0开始(以及之前的一段时间),您可以使用属性列出应该可供本机映像加载的资源:

bash

该属性支持以逗号分隔的文件列表。用于构建本机映像的配置参考中描述了此列表的语法:https://quarkus.io/guides/building-native-image#configuration-reference