使用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

相关文章

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import