Maison >Java >javaDidacticiel >Comment résoudre les problèmes d'indexation Jandex pour les classes de modules externes dans Quarkus ?

Comment résoudre les problèmes d'indexation Jandex pour les classes de modules externes dans Quarkus ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-13 04:35:02969parcourir

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

Indexation Jandex pour les classes de modules externes dans Quarkus

Contexte

Dans un multi-module Dans la structure du projet Maven, il est courant que les points de terminaison JAX-RS d'un module s'appuient sur des classes définies dans un module externe. Cependant, Quarkus peut émettre un avertissement indiquant une incapacité à indexer ces classes pour réflexion.

Solution

Pour résoudre ce problème et garantir une indexation correcte :

Option 1 : Plugin Jandex Maven

  • Ajouter le plugin Jandex Maven au pom.xml du module contenant les classes à indexer.
  • Cela exécute un objectif qui génère l'index Jandex nécessaire.

          <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>

    Option 2 : Plugin Jandex Gradle (Gradle uniquement)

  • Utiliser le troisième- party Jandex Gradle plugin pour générer l'index.
  • Configurez le plugin dans votre script Gradle conformément aux directives de son référentiel GitHub.

Option 3 : META-INF/beans vides .xml

  • Créez un fichier META-INF/beans.xml vide dans le répertoire src/main/resources du module externe.
  • Quarkus indexera automatiquement le fichier classes.

Option 4 : Propriétés de l'application Quarkus

  • Pour les dépendances externes qui ne peuvent pas être modifiées, vous pouvez les indexer manuellement en ajoutant entrées dans votre fichier application.properties :

    quarkus.index-dependency.<name>.group-id=
    quarkus.index-dependency.<name>.artifact-id=
    quarkus.index-dependency.<name>.classifier=(optional)
  • Remplacez avec un identifiant de votre choix pour la dépendance.

En implémentant l'une de ces options, vous pouvez vous assurer que les classes nécessaires sont correctement indexées et que la réflexion peut opérer avec succès sur elles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn