Создание и развертывание сборок войны для конкретной среды для Tomcat во время одной сборки - PullRequest
0 голосов
/ 13 июля 2010

Я хочу иметь возможность создать файл войны и развернуть его в нескольких средах.Я знаю, что могу создать задачу муравья, чтобы получить окружение и либо включить файлы в войну, либо заменить токены по мере необходимости.Тем не менее, это приведет к такому количеству различных военных файлов, как окружение (dev, QA, DR, prod и т. Д.).Похоже, что это создаст файл производственной войны, который никогда не тестировался.Да, должны изменяться только специфические свойства среды, но нет способа просто развернуть этот файл войны в dev, если есть проблемы.

Есть ли простой способ создать один файл войны и создать все файлы конфигурациивнешний?Должен ли я указать там местоположение в скрипте startup.sh?Это может потребовать изменения кода для получения файлов из этого внешнего местоположения, и я не уверен, как это будет работать с некоторыми элементами, специфичными для фреймворка, такими как конфигурация базы данных.В настоящее время я создаю один файл war с конфигурацией dev, затем развертываю его в каждой среде, чтобы он разбирался, затем запускаю сценарий для копирования файлов свойств среды, а затем перезапускаю tomcat, чтобы эти свойства вступили в силу, но это некажется хорошим решением.

Файлы свойств, которые мне нужны, - это конфигурация базы данных, специфические свойства приложения, такие как местоположение почтового сервера, и log4j.properties.

Я развертываю их на серверах Linux, работающих под управлением Tomcat и Iу меня полный доступ к серверам, поэтому я могу создавать любые скрипты ant, bash и т. д., которые мне нужны.

1 Ответ

1 голос
/ 13 июля 2010
  1. Одна вещь, которую вы можете сделать, это использовать JNDI для таких вещей, как источники данных, чтобы ваше приложение получало свои ресурсы из контейнера. но это решение не будет работать для всех вещей, которые настраиваются.

В целом, я думаю, что это «нормальная» практика - создавать войну / слух для каждой среды. Я не согласен с вашим утверждением о том, что вы «развертываете военные документы, которые никогда не проверялись». Вы развертываете файл war, где конфигурация не была проверена, более точна. Может быть, вы можете написать несколько модульных тестов, которые проверят производственные конфигурации и запустить их при создании Prod War, чтобы вы могли проверить свои требования «test prod war» ...

...