Создание одного большого файла войны из двух военных проектов - PullRequest
3 голосов
/ 26 марта 2010

Кто-нибудь знает достойный способ объединить 2 военных модуля в один большой боевой файл?

Может быть, через какой-нибудь пользовательский плагин maven или в конфигурации maven-war-plugin?

Спасибо

Ответы [ 2 ]

3 голосов
/ 26 марта 2010

Это не так просто.

Основная проблема заключается в том, что каждая WAR является собственным пространством имен в контейнере, поэтому простое их объединение может легко привести к конфликтам, если WAR A перезаписывает что-либо в WAR B (index.jsp - хороший пример).

Целесообразно взять каждую WAR и поместить их в свое собственное поддерево новой WAR, но даже при этом у вас есть «глобальные» артефакты, которые необходимо будет устранить, особенно содержимое web.xml, но также такие вещи, как файлы свойств, которые обычно имеют значение «один на WAR», например log4j.properties.

Наконец, переносимая WAR не "жестко кодирует" свое имя WAR в своих ссылках, а скорее полагается на получение контекстного пути из запроса. Однако, если вы объединяете две WAR под главной WAR, контекстный путь только к корню приложения, а не к конкретному подкаталогу каждой отдельной WAR. Итак, вам нужно выследить все эти ссылки или ссылки, где путь был жестко запрограммирован, и исправить их.

Итак, на самом деле нет автоматизированного способа объединения WAR.

1 голос
/ 26 марта 2010

Плагин maven Cargo может объединять файлы WAR , но я никогда не использовал это вне контекста тестирования (где у меня был полный контроль над тем, что я хотел объединить).

Для более простых сценариев вы можете использовать оверлеи .

Но ни одно из этих решений волшебным образом не разрешит столкновения. Вам придется сделать несколько выборов.

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