Как повторно использовать ресурсы войны между войнами с помощью плагина Maven War

В среде Java EE у меня есть веб-страница, включающая несколько файлов JSP. Допустим, одним из включенных JSP является header.jsp. Может быть очень похож на тот, который используется Stackoverflow, показывая информацию о пользователе, ссылки и т. д. Этот JSP связан с java-контроллером для получения информации о пользователе и является частью моего файла WAR, включая все веб-приложение.

Для его разработки я использовал Eclipse, а для сборки и упаковки — Maven.

Теперь мне нужно создать новое веб-приложение (поэтому новая война), и я хочу повторно использовать заголовок.

Я притворяюсь:

  • не дублировать код
  • обе войны используют одну версию кода заголовка

Итак, вопрос:

Есть ли способ избежать копирования и вставки обоих файлов (header.jsp и controller.java) из старого проекта в новый?


person Marcos    schedule 03.01.2013    source источник
comment
Я понятия не имею, как добиться этого с помощью Maven, но в основном вам нужно, чтобы ваша вещь Maven выполняла ту же структуру проекта, что и в этом тесно связанном вопросе: stackoverflow .com/questions/11210628/   -  person BalusC    schedule 03.01.2013


Ответы (1)


плагин Maven WAR, который управляет упаковкой WAR, предоставляет механизм "Overlay" для решить именно этот вопрос. Вы уже используете плагин WAR просто потому, что ваш проект относится к типу «WAR»; maven использует это как подсказку о том, как построить ваш проект, включая использование плагина WAR для привязки фазы пакета.

Наложение работает следующим образом: ваш файл WAR объявляет другой проект WAR в качестве зависимости, точно так же, как если бы вы удаляли зависимость от нужного файла jar. Когда срабатывает пакет mojo плагина WAR, он увидит эту зависимость от другого WAR и создаст новую войну как комбинацию этих двух. Обратите внимание, что объединение файлов не происходит, если файл существует в обеих WARS; одно просто подавляет другое. Вы можете настроить плагин, чтобы выбрать, какой из них использовать; по умолчанию выигрывает файл текущего проекта. Также обратите внимание, что вы можете зависеть не только от одной войны, если хотите.

person chad    schedule 03.01.2013
comment
Это было действительно полезно! Большое спасибо!! - person Marcos; 04.01.2013
comment
Не могли бы вы привести пример? - person Ali Shakiba; 24.07.2013
comment
@JohnS Извините, что скинул вам ссылку на документы. Однако пример по этой ссылке довольно хорош, по крайней мере, в сочетании с моим концептуальным ответом. maven.apache.org/plugins/maven-war-plugin/overlays. html - person chad; 24.07.2013