dev config переопределяет тестовую конфигурацию в Quarkus

В моем приложении 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 возможных подходов:

  1. «использование системных свойств»: я бы предпочел иметь для этого файл, чтобы каждый разработчик мог иметь свой собственный файл и не нужно было адаптировать командную строку перед запуском;
  2. «с использованием переменных среды»: по той же причине;
  3. .env файл: может работать, но я не могу указать значение только для профиля dev (он же %dev.[...]);
  4. $PWD/config/application.properties файл: ну, это для режима разработки, я не считаю его удобным, так как цель очищена, и мне приходится снова копировать папку config после каждого mvn clean;
  5. Создайте свой собственный ConfigSource или ConfigSourceProvider. Я знаю, что это может сработать, но я предпочитаю избегать каких-либо конкретных вещей в моем проекте и придерживаться встроенной конфигурации Quarkus.

person Arno    schedule 11.05.2020    source источник


Ответы (1)


Я только что обнаружил, что ошибался насчет этого:

  1. .env файл: может работать, но я не могу указать значение только для профиля разработчика (он же %dev.[...]);

В файле .env можно указать собственные значения профиля:

_DEV_QUARKUS_DATASOURCE_PASSWORD=foo

Поскольку я могу поставить перед свойством префикс _DEV_[...], это значение предназначено только для профиля dev: свойство test больше не переопределяется.

person Arno    schedule 11.05.2020