使用Maven 3设置Struts2 EAR项目

时间:2013-10-01 15:34:55

标签: maven java-ee web-applications struts2 maven-3

我正在从Apache Ant + Apache Ivy迁移到Apache Maven以进行新项目的生命周期管理。

我从来没有将Maven用于官方发布,所以我就是新手了。

目前我已经安装并配置了Maven 3M2Eclipse插件,我创建了一个带有The Blank Convention Archetype (struts2-archetype-convention)的新Struts2 WAR项目,我可以将其部署到{ {3}}

在阅读了大量文章和StackOverflow答案之后,我发现Maven的第一个规则是:一个项目,一个工件;

然后,为了使用EAR,我需要三个项目: EAR WAR EJB ;但是JBoss 7,而不是三个:一个 EAR ,一个 WAR ,一个 EJB ,一个 PARENT 。我认为EJB将是父...所以第一个问题是:

  • 这是正确的方法吗?

现在我已经开始使用Struts2 WAR,第二个问题是:

  • 在EAR项目中(或者如果需要,在PARENT项目中)包含现有WAR的最佳(最干净,最常用)方法是什么?

手动创建?生成一些其他 ear artifact Java-EE-webapp artifacts ,然后添加依赖项?任何需要假设的POM.xml的例子都将不胜感激。

1 个答案:

答案 0 :(得分:2)

我最终使用了:

  1. JBoss Java EE 6 WebApp Archetype生成WebApp,由四个项目组成:Parent,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. 然后我手动将JBoss生成的WAR替换为Struts2生成的WAR。

  4. 我想这是最干净的方式。