Вот как я это делаю:
В контроле исходного кода у меня есть файлы свойств для каждой среды.Например, production-environment.properties
, qa-environment.properties
и т. Д. Все файлы свойств находятся в исходном каталоге resources
и включены в файл WAR.
Tomcat запускается с системным свойством, которое выбираетокружение, например:
-Denvironment=production
.
Приложение выбирает, какой файл свойств использовать во время выполнения, на основе системного свойства.
Никаких специальных шагов по сборке или развертыванию не требуется.Один файл WAR на сборку используется во всех средах.
Другим аспектом этого подхода является то, что свойства в файле WAR могут быть переопределены системными свойствами.Это позволяет ops изменять свойства после развертывания WAR.Кроме того, он позволяет полностью исключить конфиденциальную информацию, такую как пароли базы данных, из системы контроля версий.