我正在迁移自Apache Ant + Apache Ivy
to Apache Maven
用于新项目的生命周期管理。
我从未在正式版本中使用过 Maven,所以我对此完全是新手。
目前我已经安装并配置Maven 3 http://maven.apache.org/docs/3.1.0/release-notes.html和M2Eclipse http://eclipse.org/m2e/插件,我创建了一个新的 Struts2 WAR 项目空白约定原型(struts2-archetype-convention) http://struts.apache.org/release/2.3.x/docs/struts-2-maven-archetypes.html#Struts2MavenArchetypes-TheBlankConventionArchetype%28struts2archetypeconvention%29,我能够部署到的项目JBoss 7 https://www.jboss.org/jbossas.
在阅读了大量文章和 StackOverflow 答案后,我发现firstMaven的规则是:一个项目,一件工件;
然后,要使用 EAR,我需要三个项目:EAR, WAR, EJB; but 这个答案表明我需要 4 个项目 https://stackoverflow.com/a/1870287/1654265,不是三:一EAR, one WAR, one EJB,和一个PARENT。我认为 EJB 将是父级......所以第一个问题是:
现在我已经有了一个可以运行的 Struts2 WAR,第二个问题是:
- 将我现有的 WAR 包含在 EAR 项目(或父项目,如果需要)中的最佳(最干净、常用)方法是什么?
手动创建它?生成一些其他的耳神器 or Java-EE-webapp 工件,然后添加依赖项 ?任何所需的假设 POM.xml 示例将不胜感激。
我最终使用了:
-
JBoss Java EE 6 Web 应用程序原型 https://docs.jboss.org/author/display/AS7/Creating+your+own+application生成WebApp,由四个项目组成:Parent、EAR、EJB、WAR:
mvn archetype:generate \
-DarchetypeArtifactId=jboss-javaee6-webapp-archetype \
-DarchetypeGroupId=org.jboss.spec.archetypes \
-DarchetypeVersion=7.0.2.CR2
-
Struts2 空白约定原型 http://struts.apache.org/docs/struts-2-maven-archetypes.html#Struts2MavenArchetypes-TheBlankConventionArchetype%28struts2-archetype-convention%29生成 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。
我想这是最干净的方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)