首页 >Java >java教程 >如何解决 Quarkus 中外部模块类的 Jandex 索引问题?

如何解决 Quarkus 中外部模块类的 Jandex 索引问题?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-13 04:35:02976浏览

How to Resolve Jandex Indexing Issues for External Module Classes in Quarkus?

Quarkus 中外部模块类的 Jandex 索引

背景

在多模块中Maven 项目结构,一个模块中的 JAX-RS 端点依赖于定义的类是很常见的在外部模块中。但是,Quarkus 可能会发出警告,指示无法为这些类建立索引以进行反射。

解决方案

要解决此问题并确保正确索引:

选项 1:Jandex Maven插件

  • 将 Jandex Maven 插件添加到包含要索引的类的模块的 pom.xml 中。
  • 这将执行一个生成必要的目标Jandex 索引。

          <plugin>
            <groupId>io.smallrye</groupId>
            <artifactId>jandex-maven-plugin</artifactId>
            <version>3.1.2</version>
            <executions>
              <execution>
                <id>make-index</id>
                <goals>
                  <goal>jandex</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

    选项 2:Jandex Gradle 插件(仅限 Gradle)

  • 利用第三方 Jandex Gradle 插件生成索引。
  • 根据 GitHub 存储库指南在 Gradle 脚本中配置插件。

选项 3:空META-INF/beans.xml

  • 在外部模块的 src/main/resources 目录中创建一个空的 META-INF/beans.xml 文件。
  • Quarkus将自动索引模块的类。

选项 4: Quarkus 应用程序属性

  • 对于无法修改的外部依赖项,您可以通过向 application.properties 文件添加条目来手动索引它们:

    quarkus.index-dependency.<name>.group-id=
    quarkus.index-dependency.<name>.artifact-id=
    quarkus.index-dependency.<name>.classifier=(optional)
  • 替换;带有您为依赖项选择的标识符。

通过实现这些选项中的任何一个,您可以确保必要的类被正确索引,并且反射可以成功地对它们进行操作。

以上是如何解决 Quarkus 中外部模块类的 Jandex 索引问题?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn