【问题标题】:Set-up a Struts2 EAR Project with Maven 3使用 Maven 3 设置 Struts2 EAR 项目
【发布时间】:2013-10-07 20:36:12
【问题描述】:

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

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

目前我已经安装并配置了Maven 3M2Eclipse 插件,并且我已经使用The Blank Convention Archetype (struts2-archetype-convention) 创建了一个新的Struts2 WAR 项目,我可以将该项目部署到JBoss 7

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

然后,要使用 EAR,我需要三个项目:EARWAREJB;但是this answer suggests that I need 4 projects,不是三个:一个EAR、一个WAR、一个EJB和一个PARENT。我认为 EJB 将是父级......所以第一个问题是:

  • 哪个是正确的方法?

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

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

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

【问题讨论】:

  • 明确一点:archetypes 只是项目的模板。没有它你也可以创建maven项目,你只需要pom.xml
  • 当然,我会编辑清楚
  • IMO 单独的父级更好。您可以在其中管理所有必需的依赖项和配置,并将它们排除在其他项目之外。您可以在其他地方使用您的 EJB 项目。另请参阅此链接:books.sonatype.com/mvnref-book/reference/…
  • 感谢@AleksandrM 回答第一点(当您发表评论时,我已编辑问题以消除噪音)。我现在要读那篇文章。

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


【解决方案1】:

我最终使用了:

  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。

我想这是最干净的方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-04
    • 1970-01-01
    • 2019-01-03
    • 2010-11-01
    • 1970-01-01
    • 2017-06-02
    相关资源
    最近更新 更多