Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java tools & IDE's > Maven: несколько web модулей |
Автор: Restavrator 13.7.2011, 13:36 |
Приветствую, Maven штука конечно замечательная, и все прекрасно вяжется при вертикальном разбиении на модули (web, api, dao). Но вот непонятно как делать горизонтальную разбивку? А точнее ее web часть. Т.е. например разбить приложение например на модули: 1) Модуль обработки заказов 2) Модуль отчетов Как распихать api, dao по отдельным артифактам понятно. Но вот как web (с jsp, картинками и прочим подобным контентом) держать в разных местах, и потом собирать в общий war файл как-то не очень. В идеале конечно, хотелось бы иметь возможность деплоить как отдельный модуль, так и всю сборку. Но минимальная задача - это разложить все по разным артефактам. Может кто-то сталкивался с подобной задачей? |
Автор: Farmazon 13.7.2011, 18:42 |
JSR168 и JSR268?... Проект Apache Pluto зазырь... хотя он не единственный. Добавлено через 2 минуты и 24 секунды http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D1%80%D1%82%D0%BB%D0%B5%D1%82 |
Автор: Restavrator 14.7.2011, 00:02 |
Я не знаком с Apache Pluto, но мне кажется, что это не совсем то, что мне нужно. Целью является не создание портала - куда можно добавлять портлеты. Даже можно больше сказать - приложение уже есть, оно достаточно большое. Т.о. замена сервлетов на портлеты не подходит. |
Автор: LSD 14.7.2011, 15:19 |
Не понятно как ты хочешь производить разбиение. У тебя будет один WEB модуль который должен порождать несколько артефактов? Или наоборот несколько модулей из которых будут порождаться кастомные WEB модули? |
Автор: Restavrator 14.7.2011, 16:59 |
Что бы еще больше не запутывать, попробую описать с другой стороны У меня есть очень большое приложение, которое собирается и деплоится как 1 варка. Есть потребность разбить его на модули, хотя бы для уменьшения скролинга по пакетам в IDE. Как разбить на артефакты web, api, dao и т.п. понятно. Но хотелось бы сразу разбить и на логические модули (заказы, отчеты) В итоге, должно получиться что-то типа матрицы: order-web report-web order-api report-api order-dao report-dao jar файлы от api и dao отлично соберутся в war файл. Вопрос что в этом случае делать с web модулем, и в частности с ресурсными файлами (JSP, CSS, и т.п.) Можно ли создавать такие Web (или не web) артефакты, которые можно было бы включать в обычный web артефакт, по которому уже собирался бы war файл. Например: в приложении используется Spring MVC. В web.xml файле моего корневого web модуля - я описываю DispatcherServlet и прочие общие настройки. А контроллеры, JSP и прочее уже разнесены по отдельным артефактам, на которые прописываю зависимости в корневом web. Т.е. тоже самое как в web модуле прописывается зависимость на api и dto например. Суть даже не столько в возможности собирать war в разной компановке, сколько максимально логично разбить исходный код на модули. Т.к. было бы неправильно разбить api, но при этом JSP оставить в куче в одной папке. |
Автор: LSD 14.7.2011, 17:39 |
Я вижу 2 способа: Первый попроще, но менее гибкий. Каждый логический web модуль упаковываешь в war, это может быть и неполный war, у него может быть неполный набор необходимых библиотек, конфигов и т.д. Главное чтобы в нем все лежало на своих местах, классы и ресурсы в classes, библиотеки в lib и т.д. Далее создаешь основной web модуль, у которого в зависимостях указываешь нужные war файлы. При сборке Maven распакует их во временную директорию, перезапишет их файлами из текущего модуля и упакует в war. Второй способ более гибкий, но требует больше усилий. Это использовать http://maven.apache.org/plugins/maven-assembly-plugin/, там ты просто руками указываешь, что куда класть. И можно в одном модуле создать несколько war файлов. |
Автор: Restavrator 3.8.2011, 01:21 |
LSD, спасибо. Буду смотреть. Может еще подскажешь, на сколько в прицнипе оправдано детальное разбиение описанное мной для большого проекта. И не получится ли в итоге больше путаницы с модульностью, чем стандартное разбиение по слоям? А то боюсь переусердствовать в этом направлении ![]() А http://cargo.codehaus.org/Merging+WAR+files никто не использовал? |