#java #quarkus
#java #quarkus
Вопрос:
Я пытаюсь разработать приложение quarkus с шестиугольной архитектурой.
Код приложения доступен на github.
У меня есть 4 модуля; Business, Persistence, Webservice и приложение упакованы в глобальный модуль, где я буду создавать свое приложение Quarkus.
Когда я запускаю:
mvn clean package -Pnative
а затем мой собственный образ
portfolio-app/target/portfolio-app-1.0-SNAPSHOT-runner
Quarkus не может предоставить мою конечную точку Portfolio, которой нет в основном модуле.
Я мог бы поместить свою конечную точку в свое портфолио-приложение, и это сработает, но я не хочу нарушать шестиугольную архитектуру.
Должен ли я поместить все мои функции Quarkus в один модуль maven или можно разделить функции в нескольких пакетах?
Комментарии:
1. Мне это кажется ошибкой, не хотели бы вы открыть проблему, пожалуйста?
2. Спасибо @ geoand я создал проблему github.com/quarkusio/quarkus/issues/1728
3. @geoand Я не уверен, что это точно такая же проблема, но когда я пытаюсь внедрить bean в мое основное приложение quarkus (реализация, исходящая из другого модуля maven). Я получаю сообщение об ошибке при обработке построения собственного образа. Arc не находит реализацию по умолчанию.
4. Я почти уверен, что это та же проблема. Похоже, что процесс индексации зависимостей вообще не происходит, и поэтому ничего не работает так, как ожидалось
Ответ №1:
Мне удается исправить проблему, добавив плагин jandex maven в мой родительский pom, следуя совету @gsmet
<build>
<plugins>
<plugin>
<groupId>org.jboss.jandex</groupId>
<artifactId>jandex-maven-plugin</artifactId>
<version>1.0.5</version>
<executions>
<execution>
<id>make-index</id>
<goals>
<goal>jandex</goal>
</goals>
<!-- phase is 'process-classes by default' -->
<configuration>
<!-- Nothing needed here for simple cases -->
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Плагин сгенерирует файл, который называется jandex.idx, содержащий ссылки на все файлы .class, содержащиеся в папке target / classes.
└── target
├── classes
│ ├── META-INF
│ │ └── jandex.idx <==== here
│ └── org
│ └── acme
│ └── quarkus
│ └── portfolio
│ └── persistence
│ └── repository
│ ├── SqlRepositoryAdapter.class
│ └── SqlRepositoryProvider.class