2013-09-03 6 views
3

В чем разница между проектом мультимодуля maven (упаковка pom) и ушной упаковкой. Как я знаю, ухо используется для упаковки группы связанных модулей (EJB, JPA, JSF). После прочтения maven documentation я обнаружил, что многомодульный проект используется для одного и того же.разница между MutliModule и EAR

Одинаковые ли они? Могу ли я использовать многомодульный проект вместо EAR? может ли проект mutlimodule быть развернут на серверы приложений?

ответ

1

Многофункциональный модуль - это всего лишь способ организации вашего проекта в модули/компоненты. Упаковка не обязательно должна быть ушной всегда. Это может быть, например, военный проект, который имеет весь свой серверный контент как файл jar в одном из своих модуль.

Короче говоря, организация нескольких модулей может быть выбрана для проекта уха, но обратный, что mutli-модуль всегда является проектом уха, не соответствует действительности.

+0

Итак, если я обычно использую EAR для упаковки своего проекта, у меня нет необходимости в модуле mutli? –

1

Эти два варианта не совпадают. Многомодульный проект просто строит все вспомогательные модули, он не создает артефакт.

+0

Только это ...? или есть другие льготы –

2

Многомодульный проект (упаковка pom) - это способ определения родительского пом, имеющего дочерние модули. Это удобно по многим причинам. Во-первых, вы можете просто построить родительский pom с mvn compile, и он также построит все его модули. Без родительского pom вам придется входить в каждую помпу и вручную вводить mvn compile.

Не только это, но и использование модулей дает вам другие действительно важные функции. See the answer to this question. Подводя итог, представьте, что у вас есть сервер непрерывной интеграции, который только что установлен в середине вашего локального здания. Используя модуль, вы убедитесь, что вы компилируете свой локальный код вместо кода сервера непрерывной интеграции. Это предотвратит много гейзенбугов (sp?).


Теперь упаковка уха напрямую не связана с этой первой многомодульной концепцией. Эта упаковка просто определяет двоичный выход. Он выведет файл уха. В плагине maven-ear-plugin вы можете включить другие модули, такие как wars/jars/ejbs, но он не будет выполнять никаких действий, описанных в первом абзаце. Например, ввод mvn compile в каталог файла pom.xml уха не будет компилировать файл войны, от которого он зависит.

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

Смежные вопросы