В моем приложении Quarkus я не хочу, чтобы пароли контролировались Git.
У меня нет проблем с профилем prod
, потому что у меня есть файл конфигурации в $PWD/config/application.properties
. Отлично.
Для профиля dev
я использую подход .env
, который содержит такие свойства, как:
QUARKUS_DATASOURCE_PASSWORD=foo
Я пытаюсь настроить тесты, и мне нужна отдельная конфигурация для тестов. Итак, у меня в src/test/resources/application.properties
есть такая конфигурация:
%test.quarkus.datasource.password=bar
К сожалению, тестовое значение (bar
) отменяется значением .env
(foo
), которое должно быть выделено профилю dev
.
Я не нахожу элегантного способа исправить это.
На основе https://quarkus.io/guides/config#overriding-properties-at-runtime У меня есть 5 возможных подходов:
- «использование системных свойств»: я бы предпочел иметь для этого файл, чтобы каждый разработчик мог иметь свой собственный файл и не нужно было адаптировать командную строку перед запуском;
- «с использованием переменных среды»: по той же причине;
.env
файл: может работать, но я не могу указать значение только для профиляdev
(он же%dev.[...]
);$PWD/config/application.properties
файл: ну, это для режима разработки, я не считаю его удобным, так как цель очищена, и мне приходится снова копировать папкуconfig
после каждогоmvn clean
;- Создайте свой собственный
ConfigSource
илиConfigSourceProvider
. Я знаю, что это может сработать, но я предпочитаю избегать каких-либо конкретных вещей в моем проекте и придерживаться встроенной конфигурации Quarkus.