- Core
- Module1
- Service1
Код: Выделить всё
@Inject
@DataSource("database1")
AgroalDataSource dataSource;
Код: Выделить всё
gradle clean build -x test
Код: Выделить всё
Unsatisfied dependency for type io.agroal.api.AgroalDataSource and qualifiers [@Default]
Похоже, что Quarkus Arc уже должен иметь возможность разрешать конфигурации во время сборки, а не во время выполнения, чтобы компилировать их непосредственно в код, что противоречит тому факту, что модули часто являются только «пригодными для жизни». вместе со службами, в которых они выполняются.
Используется:
- Gradle 8.6
- Quarkus 3.9.5
- Intellij 2024.1.1
- Модули содержат модульные тесты QuarkusTest, поскольку модули должны содержать фрагменты Приложение-служба (монорепо с модульностью), а также необходимо иметь возможность использовать Quarkus Arc для внедрения зависимостей и событий запуска Quarkus (среди прочего), а также иметь возможность использовать эти инъекции зависимостей во время тестов. мы не можем использовать обычные тесты Junit5, но нам нужно использовать тесты QuarkusTest.
поскольку нам нужно использовать QuarkusTest, мы хотим, чтобы Intellij также мог запускать эти тесты через пользовательский интерфейс. . При запуске QuarkusTest через пользовательский интерфейс в Intellij для его правильного запуска Intellij необходимы следующие два параметра Gradle.
зависимости должны содержать: /code> - Плагины должны содержать: id 'io.quarkus'
Итак, в заключение:
- В настоящее время модули должны быть Quarkus-Modules (имеющими Quarkus-plugin и Quarkus-Bom), поскольку в противном случае тесты не будут выполняться в Intellij.
- Модули используют Quarkus-Arc, и Quarkus-Arc необходимо снабдить Inject-Targets во время! сборку, в противном случае она будет жаловаться/прерывать сборку.
Для самой сборки я не могу этого сделать, поскольку класс TestProfile предназначен только для модульных тестов. Поэтому я должен использовать файл application.properties, предоставляющий значения по умолчанию.
Наконец, теперь мой вопрос:
< ul>
[*]Есть ли что-то, что я пропустил в документации Quarkus Arc в отношении такой многомодульной установки?
[*]Может ли кто-нибудь указать мне, как я мог бы выполнить рефакторинг мой проект, чтобы сделать модули более независимыми и автономными.
[*]Нужно ли мне также поместить файл application.properties в мои модули, чтобы я мог создавать их с помощью Quarkus Дуга в виду? Хотя кажется, что это работает, это кажется неправильным, потому что тогда мне нужно будет предоставить неправильные свойства/свойства-заполнители только для того, чтобы удовлетворить Arc Build.
Подробнее здесь: https://stackoverflow.com/questions/785 ... odule-buil