Как создать индекс Jandex в Quarkus для классов во внешнем модуле для Gradle - PullRequest
0 голосов
/ 27 июня 2019

Основываясь на следующей конфигурации maven из на этот вопрос SO, на который ответили для сборок Maven , мне нужен эквивалентный бит кода для установки Gradle. Оглядываясь вокруг, я не могу найти установку, которая делает это для Gradle.

Краткое изложение вопроса из другого вопроса. По сути, классы из внешних проектов не индексируются, чтобы Quarkus мог их использовать. Приведенное ниже решение перестраивает индекс и предоставляет доступ к классам.

Код из другого вопроса:

<build>
  <plugins>
    <plugin>
      <groupId>org.jboss.jandex</groupId>
      <artifactId>jandex-maven-plugin</artifactId>
      <version>1.0.6</version>
      <executions>
        <execution>
          <id>make-index</id>
          <goals>
            <goal>jandex</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

Кроме того ... после более глубокого изучения, кажется, что здесь уже может быть исправление (запрос на слияние с github . На момент написания это объединено, но не похоже на это является частью релиза. Будет следить, если это изменится, и если это решит эту проблему.

Обновление:

С выпуском 0.18.0 у меня все еще есть проблемы, но я думаю, что я ближе. Я все еще получаю следующую (очень похожую) ошибку:

2019-06-27 19:45:52,741 INFO  [io.qua.dep.QuarkusAugmentor] (main) Beginning quarkus augmentation
2019-06-27 19:45:53,241 WARN  [io.qua.dep.ste.ReflectiveHierarchyStep] (build-8) Unable to properly register the hierarchy of the following classes for reflection as they are not in the Jandex index:
- com.ebp.reasonadle.shared.pojos.user.User
Consider adding them to the index either by creating a Jandex index for your dependency via the Maven plugin, an empty META-INF/beans.xml or quarkus.index-dependency properties.");.

Это с пустым beans.xml, и на данный момент я не уверен, как сделать попытку записи в application.properties.

Записи, предложенные в другом вопросе:

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

Я не совсем понимаю, что такое заполнитель <name>. Classname? Название проекта Gradle? Также я предполагаю, что пустые назначения являются преднамеренными?

Структура моего общего проекта gradle:

| Main
| \ (API folder)
|  | User API (Quarkus Project, pulls in pojos)
| \ (Common resource folder)
|  | Common pojo's (Java library, done with Gradle's plugin)

Для разработчиков Quarkus, просматривающих это, я бы сказал, что в этом нет необходимости. Распространение pojos между проектами довольно распространено, и то, что я бы назвал хорошим дизайном. Может быть, быстрый старт для объяснения, как заставить эту работу?

...