我正在从Apache Ant + Apache Ivy
迁移到Apache Maven
以进行新项目的生命周期管理。
我从来没有将Maven用于官方发布,所以我就是新手了。
目前我已经安装并配置了Maven 3和M2Eclipse插件,我创建了一个带有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 artifact 或 Java-EE-webapp artifacts ,然后添加依赖项?任何需要假设的POM.xml的例子都将不胜感激。
答案 0 :(得分:2)
我最终使用了:
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
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
然后我手动将JBoss生成的WAR替换为Struts2生成的WAR。
我想这是最干净的方式。