当前位置:首页 > 电脑教程 > 正文

如何用命令打ear包?

要创建EAR包,使用 jar命令打包应用描述符和模块文件,基本命令格式如下:,“ bash,jar cvf 应用名.ear META-INF/application.xml 模块1.war 模块2.jar 其他资源,` ,关键步骤:创建包含application.xml 的META-INF 目录,执行打包命令生成.ear`文件。

什么是EAR包?

EAR(Enterprise Archive)是Java EE企业级应用的标准化部署格式,包含多个模块(如WAR、JAR、EJB-JAR)及全局配置文件,用于在应用服务器(如WebLogic、WildFly)中统一部署。


创建EAR包的两种主流方式

▶ 方法一:使用Apache Maven构建(推荐)

<!-- 步骤1:在父POM中定义打包类型 --> <packaging>ear</packaging> <!-- 步骤2:配置maven-ear-plugin --> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ear-plugin</artifactId> <version>3.3.0</version> <configuration> <!-- 指定子模块 --> <modules> <webModule> <groupId>com.example</groupId> <artifactId>webapp</artifactId> <contextRoot>/myapp</contextRoot> </webModule> <ejbModule> <groupId>com.example</groupId> <artifactId>ejb-service</artifactId> </ejbModule> </modules> <!-- 生成application.xml --> <generateApplicationXml>true</generateApplicationXml> </configuration> </plugin> </plugins> </build>

执行命令

如何用命令打ear包? 第1张

生成路径:target/your-project-1.0.ear

▶ 方法二:手动命令行打包(JDK原生)

# 步骤1:创建标准目录结构 myapp.ear ├── META-INF │ └── application.xml # 部署描述符 ├── webapp.war # Web模块 └── services.jar # EJB模块 # 步骤2:编写application.xml <?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="7"> <module> <web> <web-uri>webapp.war</web-uri> <context-root>/myapp</context-root> </web> </module> <module> <ejb>services.jar</ejb> </module> </application> # 步骤3:执行打包命令 jar cvf myapp.ear -C ear-dir .


关键配置文件说明

  1. application.xml(必需)

    定义模块组成与依赖,需包含:

  2. jboss-deployment-structure.xml(可选)

    用于WildFly服务器的模块依赖配置。

    如何用命令打ear包? 第2张

  3. 验证EAR包完整性

    # 查看包内文件列表 jar tf myapp.ear # 检查描述符有效性 unzip -p myapp.ear META-INF/application.xml | xmllint --noout -

    成功提示:META-INF/application.xml validates OK


    常见问题排查

    问题现象 解决方案
    部署时找不到模块 检查application.xml中路径
    ClassNotFound异常 确认依赖JAR已包含在EAR/lib
    上下文路径冲突 修改<context-root>唯一值


    最佳实践建议

    1. 版本管理

      在META-INF/MANIFEST.MF中添加版本信息:

      如何用命令打ear包? 第3张

    2. 依赖管理

      将通用库放入EAR/lib目录,避免模块重复包含。

    3. 安全配置

      在application.xml中启用安全约束:

      <security-role> <role-name>admin</role-name> </security-role>

    4. 引用说明:本文操作遵循Java EE 7规范,参考Oracle官方部署指南及Apache Maven文档,服务器兼容性请查阅具体应用服务器文档(如WildFly 26+或WebLogic 14c)。

0