2013-10-01 6 views
3

Я перехожу из Apache Ant + Apache Ivy в Apache Maven для управления жизненным циклом нового проекта.Настройка проекта Struts2 EAR с Maven 3

Я никогда не использовал Maven для официальных релизов, поэтому я новичок в этом.

В настоящее время я установлен и настроен Maven 3 и M2Eclipse плагин, и я создал новый проект Struts2 WAR с The Blank Convention Archetype (struts2-archetype-convention), проект, который я в состоянии развернуть в JBoss 7.

После прочтения тонны статей и StackOverflow ответов я понял, что первого правила Maven является: один проект, один артефакт;

Затем, чтобы работать с EAR мне нужно три проекта: EAR, WAR, EJB; но this answer suggests that I need 4 projects, не три: один EAR, один WAR, один EJB, и один РОДИТЕЛЕЙ. Я думал, что EJB будет родителем ... так что первый вопрос:

  • что это правильный путь?

И теперь, когда я рабочий Struts2 WAR, второй вопрос:

  • Какой самый лучший (чистый, обычно используемый) способ включить мой существующий WAR в проекте EAR (или в проекте PARENT, если необходимо)?

Создание вручную? Генерирование некоторых других уха артефакт или Java-EE-webapp артефакты, а затем добавить зависимости? Любой пример гипотетического POM.xml был бы весьма полезен.

+0

Просто, чтобы прояснить: архетипы - это всего лишь шаблон для проектов. Вы можете создать проект maven без него, все, что вам нужно, это 'pom.xml'. –

+0

Абсолютно, я отредактирую, чтобы было ясно, –

+0

ИМО отдельный родитель лучше.Вы можете управлять всеми необходимыми зависимостями и конфигурациями там и оставить их вне своих других проектов. И вы можете использовать проект EJB где-то в другом месте. Также см. Эту ссылку: http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-pom-best-practice.html#pom-relationships-sect-multi-vs-inherit. –

ответ

2

Я закончил с использованием:

  1. JBoss Java EE 6 WebApp Archetype для создания WebAPP, составленный четырьмя проектами: Родитель, EAR, EJB, WAR:

    mvn archetype:generate \ 
         -DarchetypeArtifactId=jboss-javaee6-webapp-archetype \ 
         -DarchetypeGroupId=org.jboss.spec.archetypes \ 
         -DarchetypeVersion=7.0.2.CR2 
    
  2. Struts2 Blank Convention Archetype для создания WAR:

    mvn archetype:generate -B -DgroupId=com.mycompany.mysystem \ 
         -DartifactId=myWebApp \ 
         -DarchetypeGroupId=org.apache.struts \ 
         -DarchetypeArtifactId=struts2-archetype-convention \ 
         -DarchetypeVersion=<CURRENT_STRUTS_VERSION> \ 
         -DremoteRepositories=http://struts.apache.org 
    
  3. Затем я вручную заменил WAR, созданный JBoss с WAR, созданным Struts2.

Я думаю, что это самый чистый путь.

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