使用Maven构建和部署J2EE应用程序的EAR文件

摘要:
主要是技术分类,用于标记和使用时的参考。因此,不要将实体置于依赖关系中。在部署期间,首先部署实体,然后部署ear。将需要放入EAR的jar和war写入pom。依赖项依赖项形式的xml文件。相应的应用程序。将生成xml文件。以下是应用程序。我的pom生成的xml文件:2.同时。此命令还生成jboss应用程序。xml文件。

新建一个空的Maven Project项目

使用Maven构建和部署J2EE应用程序的EAR文件第1张


注:ear部署时假设里面有entity,会错误发生。所以不要把entity放到依赖项中。部署的时候先部实体,然后再部ear

将须要打入EAR中的jarwardependencies-dependency的形式写到pom.xml文件里。如:

使用Maven构建和部署J2EE应用程序的EAR文件第2张


如今打出来的ear包中的application中仅仅有war的配置信息,而没有jar的配置信息,而我们假设想控制这些jar的配置信息,就必须把jar的信息配置到application.xml中,而application.xml是能够通过此插件生成的。所以在pom.xml文件里配置就可以。配置方式例如以下:

使用Maven构建和部署J2EE应用程序的EAR文件第3张

假设如今打包,会报一个没有发现application.xml的错误,这个文件须要我们自己创建么?答案是不须要:

1.       执行ear: generate-application-xml。会生成对应的application.xml文件,以下是我的pom生成的application.xml文件(格式有修改):

使用Maven构建和部署J2EE应用程序的EAR文件第4张


2.       同一时候。此命令还生成一个jboss-app.xml的文件。里面简单一一句话,是说要JBoss依照application.xml里面的声明顺序载入

使用Maven构建和部署J2EE应用程序的EAR文件第5张


3.       如今能够运行生成ear的命令了:ear:ear,坐等成功吧~~


五、 更改pompackaging

如今假设你直接Install的话,会发现并非打成的ear,而是打了jar。须要将packaging改为ear就可以。

但改后会发现pom上面报错,你在eclipse应用广场搜一下m2e-wtp。然后安装就可以。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
         <modelVersion>4.0.0</modelVersion>
         <parent>
                   <groupId>com.tgb</groupId>
                   <artifactId>gxpt</artifactId>
                   <version>0.0.1-SNAPSHOT</version>
                   <relativePath>../gxpt/pom.xml</relativePath>
         </parent>
         <artifactId>gxpt_a_ear</artifactId>
         <packaging>ear</packaging>
 
         <dependencies>
                  <dependency>
                            <groupId>com.tgb</groupId>
                            <artifactId>gxpt_entity_qx</artifactId>
                            <version>0.0.1-SNAPSHOT</version>
                            <type>jar</type>
                   </dependency>
                   <dependency>
                            <groupId>com.tgb</groupId>
                            <artifactId>gxpt_common_tool</artifactId>
                            <version>0.0.1-SNAPSHOT</version>
                            <type>jar</type>
                   </dependency>
                   <dependency>
                            <groupId>com.tgb</groupId>
                            <artifactId>gxpt_common_eao</artifactId>
                            <version>0.0.1-SNAPSHOT</version>
                            <type>jar</type>
                   </dependency>
                   <dependency>
                            <groupId>com.tgb</groupId>
                            <artifactId>gxpt_common_eao_impl</artifactId>
                            <version>0.0.1-SNAPSHOT</version>
                            <type>jar</type>
                   </dependency>
                   <dependency>
                            <groupId>com.tgb</groupId>
                            <artifactId>gxpt_mgr_qx_module</artifactId>
                            <version>0.0.1-SNAPSHOT</version>
                            <type>jar</type>
                   </dependency>
                   <dependency>
                            <groupId>com.tgb</groupId>
                            <artifactId>gxpt_mgr_qx_module_impl</artifactId>
                            <version>0.0.1-SNAPSHOT</version>
                            <type>jar</type>
                   </dependency>
                   <dependency>
                            <groupId>com.tgb</groupId>
                            <artifactId>gxpt_web_qx_module</artifactId>
                            <version>0.0.1-SNAPSHOT</version>
                            <type>war</type>
                   </dependency>
         </dependencies>
 
         <build>
                   <plugins>
                            <plugin>
                                     <artifactId>maven-ear-plugin</artifactId>
                                     <version>2.9</version>
                                     <configuration>
                                              <packagingIncludes>META-INF/**,**/gxpt_*.jar,**/gxpt_*.war</packagingIncludes>
                                               <jboss>
                                                        <version>5</version>
                                                        <module-order>strict</module-order>
                                               </jboss>
                                               <modules>
                                                        <jarModule>
                                                                 <groupId>com.tgb</groupId>
                                                                 <artifactId>gxpt_entity_qx</artifactId>
                                                                 <includeInApplicationXml>true</includeInApplicationXml>
                                                        </jarModule>
                                                        <jarModule>
                                                                 <groupId>com.tgb</groupId>
                                                                 <artifactId>gxpt_common_tool</artifactId>
                                                                 <includeInApplicationXml>true</includeInApplicationXml>
                                                        </jarModule>
                                                        <jarModule>
                                                                 <groupId>com.tgb</groupId>
                                                                 <artifactId>gxpt_common_eao</artifactId>
                                                                 <includeInApplicationXml>true</includeInApplicationXml>
                                                        </jarModule>
                                                        <jarModule>
                                                                 <groupId>com.tgb</groupId>
                                                                 <artifactId>gxpt_common_eao_impl</artifactId>
                                                                 <includeInApplicationXml>true</includeInApplicationXml>
                                                        </jarModule>
                                                        <jarModule>
                                                                 <groupId>com.tgb</groupId>
                                                                 <artifactId>gxpt_mgr_qx_module</artifactId>
                                                                 <includeInApplicationXml>true</includeInApplicationXml>
                                                        </jarModule>
                                                        <jarModule>
                                                                 <groupId>com.tgb</groupId>
                                                                 <artifactId>gxpt_mgr_qx_module_impl</artifactId>
                                                                 <includeInApplicationXml>true</includeInApplicationXml>
                                                        </jarModule>
                                                        <webModule>
                                                                 <groupId>com.tgb</groupId>
                                                                 <artifactId>gxpt_web_qx_module</artifactId>
                                                                 <includeInApplicationXml>true</includeInApplicationXml>
                                                        </webModule>
                                               </modules>
                                     </configuration>
                            </plugin>
                   </plugins>
         </build>
</project>

六、部署到JBoss

1、首先确认你连接的仓库,默认的中央仓库上面是没有JBoss的包的。须要配置一下开源中国的私服库。

具体请查看:http://maven.oschina.net/help.html。官方给的配置非常具体。

2、配置Cargo

<plugin>
         <groupId>org.codehaus.cargo</groupId>
         <artifactId>cargo-maven2-plugin</artifactId>
         <version>1.4.5</version>
         <configuration>
                   <container>
                            <containerId>jboss51x</containerId>
                            <type>remote</type>
                   </container>
                   <configuration>
                            <type>runtime</type>
                            <properties>
                                     <cargo.remote.username>admin</cargo.remote.username>
                                     <cargo.remote.password>admin</cargo.remote.password>
                                     <cargo.hostname>192.168.24.48</cargo.hostname>
                                     <cargo.rmi.port>1099</cargo.rmi.port>
                            </properties>
                   </configuration>
         </configuration>
         <dependencies>
                   <dependency>
                            <groupId>org.jboss.integration</groupId>
                            <artifactId>jboss-profileservice-spi</artifactId>
                            <version>5.1.0.GA</version>
                   </dependency>
                   <dependency>
                            <groupId>org.jboss.jbossas</groupId>
                            <artifactId>jboss-as-client</artifactId>
                            <version>5.1.0.GA</version>
                            <type>pom</type>
                   </dependency>
         </dependencies>
</plugin>

3、将此项目运行clean install后,然后就能够运行cargo:deploy了。通过此命令就能够将项目部署到远程JBoss中了。


须要注意的一点。假设用到了spring,通过jndi查找ejb,那么

因为EJBEAR中被部署后。绑定的JNDI前面会加上EAR的包名,如:

之前的CommonEao部署之后的JNDI名字为:common_EaoBean/remote,而如今会变成:gxpt_a_ear/commonEaoBean/remote


七、总结:

做j2ee企业级开发。构建EAR是一项基本功。EAR仅仅是一种技术规范,依据不同的项目环境。会有不同的使用方法。在我们的项目中,适当的时候,会採用EAR作为作为组件的部署单位,让EAR包括一组EJB颗粒。起到分类的作用,同一时候也用于打包与组件相关联的辅助资源。配合Jenkins自己主动部署。使用maven cargo插件很便利的就能够将项目部署到远程的jboss中。



免责声明:文章转载自《使用Maven构建和部署J2EE应用程序的EAR文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C# 进程(通过进程打开程序)java FastJSON的使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【转】收集 jetty、tomcat、jboss、weblogic 的比较

jetty Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。 特性 易用...

[JBoss]

安装Java和设置JAVA_HOME等步骤跳过。 1、去官网下载jboss: http://jbossas.jboss.org/downloads/ 这里使用的是7.1.1 final,jboss版本4.0以上都有很大的变化,以前一直使用4.0,到版本7一下子好像要重新学过似的。。。。-_-# 2、解压zip包。打开目录修改端口: (默认端口为8080,如...

解决JBoss只能通过localhost(127.0.0.1)而不能通过IP访问

原文地址:http://fanzhongyun.iteye.com/blog/1454967 刚开始测试访问远程EJB对象的时候,我的EJB是发布到我本人本机的JBoss6上的,所以请求的URL我写的是localhost(或者是本机回路地址:127.0.0.1),测试正常。但是当我将请求的URL改成:192.168.0.3(本人的局域网IP),再次测试的时...

jboss6.3安装

 jboss6.3安装 JDK、JBOSS以及winSCP传输工具下载 JDK下载链接: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 单选Accept License Agr                         JBOS...

Hibernate-在Eclipse(Oxygen)中安装Hibernatetools插件

Eclipse(Luna)中是没有Hibernate插件的,该插件是需要自己进行添加。 在网上找了一下关于如何在Eclipse中安装Hibernatetools插件的方法,很多都是先找到Hibernatetools-Update-x.x.x.Final.zip的包,然后再进行安装。 而我在Hibernate官网上没找到类似的zip包,只找到JBoss To...

jboss日志的自定义

最近由于想着每次调试socket接收数据情况都需要源码debug好麻烦,要是能把接收到的数据输出到一个单独的日志文件,那出问题的时候,查看问题就方便多了。 log4j的日志是可以很方便自定义的,只是这个jboss没有搞过,不晓得怎么搞,查阅一番资料后,终于找到了自定义的方式。 首先,需要找到jboss目录下的 standalone.xml 这个文件,路径(...