Maven - несколько модулей для одной упаковки - PullRequest
1 голос
/ 26 февраля 2010

У меня есть веб-приложение, которое я хотел бы разделить на три части. Я заметил, что у него есть две совершенно разные функциональные возможности, но общая архитектура (библиотеки, используемые на уровне представления, контейнер Spring, DAO и т. Д.) Является общей.

Одна часть была бы "главной", с полным вертикальным стеком от представления до DAO, но только для того, что является общим для всех "подпроектов".

Два других модуля будут самими «подпроектами».

Теперь возникает вопрос: можно ли заставить Maven обрабатывать все 3 компонента (модуля?) Как один, чтобы они были собраны и, что наиболее важно, упакованы вместе? Мне нужен конечный результат - одиночная война с деревом каталогов, похожим на:

war
 + WEB-INF
   + classes
     + subproject1
     + subproject2
 + view-shared
   + css
     + ...
   + js
     + ...
 + subproject1
   + myPage.jsp
 + subproject2
   + anotherPage.jsp

Вы поняли.

Ответы [ 2 ]

3 голосов
/ 26 февраля 2010

Вы можете сделать это с помощью подключаемого модуля Maven.

Другим решением является:

  • A common проект (упаковка jar)
  • A subproject1 (упаковка war) с зависимостью common.
  • A subproject2 (упаковка war) с зависимостью common.
  • Наконец, web проект (упаковка war), который имеет как subproject1, так и subproject2 в качестве зависимостей.

Когда Maven создаст проект web, он сначала разархивирует войны subproject1 и subproject2 в каталог web/target, а затем скопирует содержимое самого проекта web в этот target каталог.

Это означает, что если файл существует в subproject1 и web проектах, то файл, размещенный в web, удалит файл, размещенный в subproject1, в окончательном файле WAR.

Вы можете найти больше информации о оверлеях Maven WAR .

0 голосов
/ 26 февраля 2010

Да, вы можете сделать это с помощью подключаемого модуля maven . Создайте отдельные модули maven для всех трех, плюс четвертый модуль, который зависит от других модулей и использует плагин сборки для построения необходимой вам структуры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...