【发布时间】:2013-10-07 20:36:12
【问题描述】:
我正在从 Apache Ant + Apache Ivy 迁移到 Apache Maven 以进行新项目的生命周期管理。
我从未将 Maven 用于官方版本,所以我完全是新手。
目前我已经安装并配置了Maven 3 和M2Eclipse 插件,并且我已经使用The Blank Convention Archetype (struts2-archetype-convention) 创建了一个新的Struts2 WAR 项目,我可以将该项目部署到JBoss 7。
阅读大量文章和 StackOverflow 答案后,我发现 Maven 的第一 规则是:一个项目,一个工件;
然后,要使用 EAR,我需要三个项目:EAR、WAR、EJB;但是this answer suggests that I need 4 projects,不是三个:一个EAR、一个WAR、一个EJB和一个PARENT。我认为 EJB 将是父级......所以第一个问题是:
- 哪个是正确的方法?
现在我有一个工作的 Struts2 WAR,第二个问题是:
- 将我现有的 WAR 包含在 EAR 项目(或 PARENT 项目中,如果需要)的最佳(最干净、常用)的方法是什么?
手动创建?生成一些其他ear artifact 或Java-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