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

相关文章

postgresql使用UUID函数的方法

《postgresql使用UUID函数的方法》本文给大家介绍postgresql使用UUID函数的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录PostgreSQL有两种生成uuid的方法。可以先通过sql查看是否已安装扩展函数,和可以安装的扩展函数

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核

如何使用Lombok进行spring 注入

《如何使用Lombok进行spring注入》本文介绍如何用Lombok简化Spring注入,推荐优先使用setter注入,通过注解自动生成getter/setter及构造器,减少冗余代码,提升开发效... Lombok为了开发环境简化代码,好处不用多说。spring 注入方式为2种,构造器注入和setter

MySQL中比较运算符的具体使用

《MySQL中比较运算符的具体使用》本文介绍了SQL中常用的符号类型和非符号类型运算符,符号类型运算符包括等于(=)、安全等于(=)、不等于(/!=)、大小比较(,=,,=)等,感兴趣的可以了解一下... 目录符号类型运算符1. 等于运算符=2. 安全等于运算符<=>3. 不等于运算符<>或!=4. 小于运

使用zip4j实现Java中的ZIP文件加密压缩的操作方法

《使用zip4j实现Java中的ZIP文件加密压缩的操作方法》本文介绍如何通过Maven集成zip4j1.3.2库创建带密码保护的ZIP文件,涵盖依赖配置、代码示例及加密原理,确保数据安全性,感兴趣的... 目录1. zip4j库介绍和版本1.1 zip4j库概述1.2 zip4j的版本演变1.3 zip4

Python 字典 (Dictionary)使用详解

《Python字典(Dictionary)使用详解》字典是python中最重要,最常用的数据结构之一,它提供了高效的键值对存储和查找能力,:本文主要介绍Python字典(Dictionary)... 目录字典1.基本特性2.创建字典3.访问元素4.修改字典5.删除元素6.字典遍历7.字典的高级特性默认字典

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断

C++中assign函数的使用

《C++中assign函数的使用》在C++标准模板库中,std::list等容器都提供了assign成员函数,它比操作符更灵活,支持多种初始化方式,下面就来介绍一下assign的用法,具有一定的参考价... 目录​1.assign的基本功能​​语法​2. 具体用法示例​​​(1) 填充n个相同值​​(2)