Значения конфигурации, специфичные для среды, во время сборки Jenkins + MavenJAVA

Программисты JAVA общаются здесь
Anonymous
Значения конфигурации, специфичные для среды, во время сборки Jenkins + Maven

Сообщение Anonymous »

Я (пытаюсь :)) создать конвейер автоматического развертывания с использованием Jenkins и Maven, и ищу лучшие практики обработки конфигурации, зависящей от среды.
Сценарий:
  • У меня есть Java-приложение, которое необходимо собрать и упаковать с помощью Maven.
  • Перед этапом сборки/упаковки необходимо заменить определенные значения конфигурации в зависимости от целевой среды (например, dev, test, prod).
  • Например, в одном из файлов конфигурации Java заполнитель, такой как LOAD_BALANCE_URL, необходимо заменить значением, зависящим от среды, прежде чем приложение будет собрано и упаковано.
Цель: Мне нужен чистый и удобный способ:
  • Вводить или заменять значения конфигурации в процессе сборки Jenkins
  • Убедиться, что применяются правильные значения в зависимости от целевой среды
  • Избегать жесткого кодирования значений, специфичных для среды, в исходном коде код
Вопрос: Каковы рекомендуемые подходы для достижения этой цели с помощью Jenkins и Maven?

Должен ли я использовать профили Maven, фильтрацию ресурсов, переменные среды Jenkins или другие передовые методы?
Будем признательны за любые примеры или рекомендации.
java code1
configuration.properties
LOAD_BALANCE_URL=

java code2
configuration.properties
USER_NAME=

config location in GIT
PROD_CONF.properties
LOAD_BALANCE_URL=http://PROD.server.com
USER_NAME=PROD_USER

UAT_CONF.properties
LOAD_BALANCE_URL=http://UAT.server.com
USER_NAME=UAT_USER

QA_CONF.properties
LOAD_BALANCE_URL=http://QA.server.com
USER_NAME=QA_USER

Вернуться в «JAVA»