有没有办法从 quarkus 扩展代码中读取主要应用程序资源?

Is there any way to read main application resources from quarkus extension code?

我有什么

  1. @ApplicationScoped class 使用 onStart 方法尝试使用 getClass().getClassLoader().getResourceAsStream() 方法读取资源文件;

  2. @BuildStepAdditionalBeanBuildItem 产生我的 @ApplicatinScoped class.

我想做什么

访问使用我的 quarkus 扩展的应用程序的资源文件夹并读取文件。

我的问题是什么

我的 quarkus 扩展似乎无法访问它(它读取自己的资源)。

我想我只需要使用不同的制作人,但我不确定是哪一个。

首先,您应该使用 Thread.currentThread().getContextClassLoader() 作为类加载器。

除此之外,Quarkus 还提供了一些有用的实用程序,例如 ClasspathUtilsFileUtil

所有这一切如何组合在一起的一个很好的例子是允许用户自定义横幅的代码。

有关所有详细信息,请参阅 https://github.com/quarkusio/quarkus/blob/2.3.0.Final/core/deployment/src/main/java/io/quarkus/deployment/steps/BannerProcessor.java#L46