построение существующего EAR с использованием Maven2 - PullRequest
0 голосов
/ 16 марта 2011

это касается построения существующего EAR с использованием maven, который содержит несколько модулей.у нас есть проект EAR, в котором содержатся веб- и jar-проекты, всего 8 проектов.Ухо было построено с использованием RAD и, следовательно, в настоящее время ни один из проектов не имеет файлов POM.Теперь я хочу использовать Maven для проекта.Я хочу использовать m2eclipse для создания POM и сборки.Планирование создания родительского проекта и создания модулей под него, который включает в себя проект уха и другие.так эффективная структура должна быть такой, как показано ниже

рабочее пространство

 >web proj

 >jar1 proj

 >jar2 proj

Проблема связана с настройкой проекта RAD и созданными им файлами метаданных в рабочей области.если я создаю родительский проект в рабочей области, а затем импортирую ear в parent, это проблема.Посоветуйте, пожалуйста, как мне сделать следующее:

1> добавить косвенное обращение к родительскому проекту, и под ним есть все проекты в ухе

2> как добавить проект ear под родительским проектом, который содержит все модули ввремя сборки

надеюсь, что моя ситуация и требования ясны, пожалуйста, сообщите об этом

Спасибо narayan

Ответы [ 2 ]

1 голос
/ 19 марта 2011

спасибо @crowne

вместо иерархической структуры я могу использовать модульный подход.

чтобы обернуть все существующие проекты, создайте maven проект типа pom упаковки в том же рабочем пространстве тогда существующие проекты могут быть добавлены в виде модулей, как показано ниже

.. / module1

.. / module2

.. / module3

указанный путь всегда относительно местоположения pom, в котором объявлены модули.

1 голос
/ 16 марта 2011

Вам не нужно импортировать ear в родительский проект, родитель должен просто ссылаться на ear как модуль в его pom и отображаться как подкаталог в родительском проекте.
Возможно, мне неясно, что вы подразумеваете под import .
Порядок, в котором модули объявляются в родительском pom, является порядком, в котором они построены, поэтому ear должен быть последним модулем в списке, поскольку в нем есть зависимости jar1, jar2 и web-модулей.
web должен быть вторым последним модулем в списке, потому что он предположительно зависит от jar1 или jar2 или обоих.

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

Читайте о реакторе Maven в этот вопрос .

Предлагаю перед тем, как заняться своим основным проектом, попробовать быстрый архетип, см. http://docs.codehaus.org/display/MAVENUSER/Archetypes+List

Архетипы appfuse Мэтта Райбла - действительно хорошие примеры, попробуйте команду ниже, чтобы создать каркасную структуру:

mvn org.apache.maven.plugins:maven-archetype-plugin:2.0:generate -DgroupId=com.test.archetest -DartifactId=archetest -DarchetypeArtifactId=appfuse-modular-jsf -DarchetypeGroupId=org.appfuse.archetypes

Посмотрите на общую структуру проекта, а затем импортируйте ее, используя M2Eclipse, который сгенерирует файлы проекта eclipse. Вы также можете сделать это через mvn eclipse:eclipse, но это не даст вам отдельные модули в вашем рабочем пространстве. Некоторые проекты предпочитают не фиксировать файлы проекта eclipse, а скорее генерируют их из pom с помощью любого из методов, упомянутых выше.

Если вы используете структуру из архетипа, приведенного выше, вам нужно добавить модуль ear в родительский проект, это можно сделать с помощью M2Eclipse.

...