3

我正在迁移Apache Ant + Apache IvyApache Maven新项目的生命周期管理。

我从来没有将 Maven 用于官方版本,所以我完全是新手。

目前我已经安装并配置了Maven 3M2Eclipse插件,并且我创建了一个新的 Struts2 WAR 项目,该项目具有空白约定原型 (struts2-archetype-convention),我能够部署到JBoss 7的项目。

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

然后,要使用 EAR,我需要三个项目:EARWAREJB;但这个答案表明我需要 4 个项目,而不是三个:一个EAR、一个WAR、一个EJB和一个PARENT。我认为 EJB 将是父级......所以第一个问题是:

  • 哪个是正确的方法?

现在我有一个工作的 Struts2 WAR,第二个问题是:

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

手动创建它?生成其他一些耳朵工件Java-EE-webapp 工件,然后添加依赖项?任何需要的假设 POM.xml 示例将不胜感激。

4

1 回答 1

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. 生成 WAR 的Struts2 Blank Convention Archetype :

    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。

我想这是最干净的方法。

于 2013-10-15T12:36:45.960 回答