2012-03-19 1 views
1

У меня есть два вопроса ;-)Как Maven ручка проекта/клиента специфический дескриптор развертывания web.xml в WAR

  1. ли «web.xml» в WAR-файл предназначен для хранения проекта/клиента -специфические информация

    • Пример: Для customerX мы хотим Фильтры для Bandwith и сжатия для customerY мы не хотим, чтобы эти фильтры
  2. Как работает Maven-B uild-Process позволяет нам создавать разные сборки для таких WAR-файлов проекта/клиента.

    • Если это будет сделано с Maven профилями
    • это должно быть сделано с отдельными сборки-процессов, которые интегрируют релиз-проект в индивидуальной WAR-Строит

ответ

3

Для первого я бы рекомендую сказать Нет. Вы должны решить это, используя файлы свойств для обработки таких вещей. вы можете обработать это с помощью профилей, но с обратным контуром, который вам нужно перестроить для каждого вашего клиента. Скажем, dev, test, prod. Это можно решить с помощью свойств, но это означает, что нужно строить три раза. Я описал лучшее решение here, которое обрабатывает разные местоположения с помощью единой сборки. Это также решит проблему для выпуска. Это также решение использовать отдельный проект maven (позволяет назвать его конфигурационным модулем), который зависит от файла WAR). Но это будет означать три разных проекта, таких как dev, test и production, которые я считаю не очень удобными.

+0

thx, ваше решение хорошо, если у вас есть фиксированное количество проектов (dev, test, production), но процесс сборки займет много времени, если у вас есть, например, 50 клиентов, где каждому клиенту нужна собственная сеть .xml configuration ;-) Мне кажется, что web.xml WAR-формата в основном не предназначен для конфигураций, специфичных для клиента, поскольку он связан в военном файле и поэтому не может быть изменен после процесса сборки. Но это заставляет меня задуматься, потому что раздел фильтра в web.xml был бы действительно классным, если бы вы могли предоставить конфигурацию фильтра для конкретного пользователя – funkrusher

+0

. Я должен был упомянуть, что с учетом конкретных клиентов я подразумеваю, что WAR (который содержит наш веб-магазин -Backend) будет развернут на сервере servletcontainer/appserver (Jetty, Tomcat, Jboss, Geronimo, Glassfish), который будет запущен на веб-сервере. Этот веб-сервер продается нашему клиенту. И каждый клиент получает свой WAR-файл (с конфигурацией web.xml для конкретного клиента). – funkrusher