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

2024-01-01 08:50

本文主要是介绍使用Maven构建和部署J2EE应用程序的EAR文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这篇文章。主要是技术上的整理,用来mark一下,用的时候參考。


一、新建项目

新建一个空的Maven Project项目



二、放入依赖

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

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



三、配置载入顺序

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


四、执行

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

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



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



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


五、 更改pompackaging

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

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

注:我的完整pom.xml

<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中。






本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5170491.html,如需转载请自行联系原作者

这篇关于使用Maven构建和部署J2EE应用程序的EAR文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/558738

相关文章

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一

go中空接口的具体使用

《go中空接口的具体使用》空接口是一种特殊的接口类型,它不包含任何方法,本文主要介绍了go中空接口的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录接口-空接口1. 什么是空接口?2. 如何使用空接口?第一,第二,第三,3. 空接口几个要注意的坑坑1:坑2:坑3:接口-空接口1. 什么是空接

springboot security快速使用示例详解

《springbootsecurity快速使用示例详解》:本文主要介绍springbootsecurity快速使用示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录创www.chinasem.cn建spring boot项目生成脚手架配置依赖接口示例代码项目结构启用s

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

一文详解如何从零构建Spring Boot Starter并实现整合

《一文详解如何从零构建SpringBootStarter并实现整合》SpringBoot是一个开源的Java基础框架,用于创建独立、生产级的基于Spring框架的应用程序,:本文主要介绍如何从... 目录一、Spring Boot Starter的核心价值二、Starter项目创建全流程2.1 项目初始化(

Spring Boot3虚拟线程的使用步骤详解

《SpringBoot3虚拟线程的使用步骤详解》虚拟线程是Java19中引入的一个新特性,旨在通过简化线程管理来提升应用程序的并发性能,:本文主要介绍SpringBoot3虚拟线程的使用步骤,... 目录问题根源分析解决方案验证验证实验实验1:未启用keep-alive实验2:启用keep-alive扩展建

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的