Home  >  Article  >  Java  >  How can I index external classes in Quarkus using Jandex?

How can I index external classes in Quarkus using Jandex?

Barbara Streisand
Barbara StreisandOriginal
2024-11-21 00:57:14398browse

How can I index external classes in Quarkus using Jandex?

How Can I Add Jandex Index-Dependencies into Quarkus to Index Classes in an External Module?

Context

When developing a Quarkus application with a multi-module maven hierarchy, classes from external modules might not be properly indexed by default, leading to warnings during startup. To resolve this issue, adding these classes to the Jandex index is necessary.

Solution

There are several methods to index external classes for Quarkus:

Using the Jandex Maven Plugin

For the Maven:

To index an external module using the Jandex Maven plugin, add the following to its pom.xml:

    <build>
      <plugins>
        <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>
      </plugins>
    </build>

Using the Empty META-INF/beans.xml File

Adding an empty META-INF/beans.xml file to the external module's src/main/resources will trigger Quarkus to index its classes.

Indexing Other Dependencies

For third-party dependencies that cannot be modified, you can add an entry to application.properties:

quarkus.index-dependency.<name>.group-id=
quarkus.index-dependency.<name>.artifact-id=
quarkus.index-dependency.<name>.classifier=(optional)

Replace with a unique identifier for the dependency.

The above is the detailed content of How can I index external classes in Quarkus using Jandex?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn