将外部模块中的类集成到 Quarkus 应用程序中时,您可能会遇到一条警告,指出这些类未在 Jandex 索引中注册。当外部模块包含需要由 Quarkus 索引的 CDI beans 或实体时,可能会出现此警告。
Quarkus 使用 Jandex 索引优化反射过程并提高性能。通过索引类,Quarkus 可以检测和利用注释的存在,例如 @Entity 或 @ApplicationScoped,而无需执行昂贵的运行时反射。
为了解决警告并确保外部模块类的正确索引,您有几个选项:
对于基于 Maven 的项目,将 Jandex Maven 插件安装到外部模块的 pom.xml 中。该插件将在构建过程中生成 Jandex 索引,确保包含必要的类。
</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><build> <plugins> <plugin> <groupId>io.smallrye</groupId> <artifactId>jandex-maven-plugin</artifactId> <executions> <execution> <goals> <goal>jandex</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
在外部模块中添加空 META-INF/beans.xml 文件也会触发 Quarkus 本身的索引。
如果修改外部模块不可行,您可以在 application.properties 中定义索引依赖:如下:
<br>quarkus.index-dependency.<name>.group-id=<br>quarkus.index-dependency.<na me>.artifact-id=<br>quarkus.index-dependency.<name>.classifier=(可选)<br>
替换带有依赖项的标识符。这种方法允许您索引外部依赖项,而无需对其进行任何修改。
以上是如何解决 Quarkus 中外部模块类的 Jandex 索引警告?的详细内容。更多信息请关注PHP中文网其他相关文章!