19

我正在尝试从命令提示符创建一个 EAR 文件。我用过

jar -cvf myServletWAR.ear . 

但我的问题是,我怎样才能让这个 EAR 文件在其中包含 WAR 文件和 JAR 文件?

我需要单独创建war文件并包含在ear文件中吗?

我不能为此使用 ANT 文件,因为这个项目的限制很少。

4

6 回答 6

9

我的 EAR 文件之一具有如下结构:

app.ear
  - APP-INF
    - lib
      // libraries (.jar) here
  - META-INF
    - MANIFEST.MF
    - weblogic-application.xml
  - module1.war
  - customlib.jar

此存档正在部署到 WebLogic 10.3 上。

记住 .ear 只是一个 ZIP 文件,因此您可以随时以这种方式创建它,尽管它看起来很乱。

于 2013-03-04T08:15:22.857 回答
6

检查 jar cmd 是否正常工作,如果是,则创建类文件和描述符等的 jar。

在那之后jar -cvf <<earname>> <<files want to be in the ear >>

于 2013-03-04T09:04:27.960 回答
4

你能试试这个:

jar -xvf myServletWAR.ear

您也可以参考:

如何将 WAR 文件添加到现有的 EAR 文件中?以及如何在一个 .ear 文件中有两个 .war 文件?

您必须在 ear 文件的 application.xml 中添加这些 EAR 文件引用。

于 2013-03-04T08:10:06.360 回答
1

如果您同时生成了客户端和 EJB,它们会自动打包到企业归档文件 (.ear) 中,您不需要这样做。否则:

  • 将 EJB 的 .jar 文件打包到应用程序的 .ear 中。为此,请使用类似于以下内容的 jar 命令:
jar -cvf myApplication .ear myService.jar

如果您有一个客户端 .war 文件,您可以以相同的方式将其添加到 .ear 文件中。

  • 使用
    应用程序服务器的工具或通过复制和编辑示例来创建部署描述符 application.xml,
    如下所示:

  • 找到一个示例 .ear,它位于示例目录中

mapdemo/mapdemo/repos/myService.deploy/JMapServ-WL.ear
  • 使用以下 jar 命令从 .ear 文件中提取描述符 application.xml:

jar -xvf JMapServ-WL.ear META-INF/application.xml

  • 复制 application.xml 描述符并对其进行编辑,将 JMapServ 替换为 .jar 文件的名称。如果您将 .war 文件的名称添加到 .ear 文件中,您还可以添加该名称。

  • 将描述符放在包含 .ear 文件的目录的 meta-inf 子目录中。

  • 使用类似于以下的 jar 命令将描述符打包到您的 .ear 文件中:

jar -uvf myService.ear META-INF/application.xml
于 2014-06-15T19:00:34.347 回答
0

.jar归档到一个.ear

jar -cvf myApplication.ear myService.jar

.war文件,您可以以相同的方式将其添加到.ear文件中。

请参阅http://supportline.microfocus.com/Documentation/books/sx51/thdpoy10.htm

于 2014-06-10T12:49:40.913 回答
0

如果您想从命令行创建耳朵,您可以尝试以下选项。

选项 1. 使用 ant 构建并使用 ear 任务。按照关于蚂蚁耳朵任务使用的stackoverflow问题中所述配置此耳朵任务

注意:如今,基于 Maven 的构建比 ant 更受欢迎。

选项 2. 如果您可以使用 maven,请配置您的模块并使用 maven ear 插件生成一个 ear。下面的命令将能够生成耳朵。

mvn clean package

有关配置 war, jars for an ear的更多信息,请参阅有关 Java EE 项目的 maven 问题。

于 2014-06-13T07:09:00.083 回答