如何创建包含war和jar文件的ear文件

22
我正在尝试通过命令提示符创建一个EAR文件。我已经使用了
jar -cvf myServletWAR.ear . 

但我的问题是,我该如何让这个EAR文件内包含WAR文件和JAR文件?
我需要单独创建WAR文件并将其包含在EAR文件中吗?
我不能使用ANT文件来完成这个任务,因为这个项目有一些限制。

你在开发时使用Maven还是Eclipse IDE? - Arun Chandrasekaran
尝试将所有文件(即jars、wars、application.xml等)复制到某个目录中(例如~/temp/build_ear),然后使用您上面列出的相同命令,应该可以正常工作。如果您需要一行命令,可以使用bash脚本。 - ethanfar
这是否可以使用Java实现? - wissem46
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文件,因此您始终可以通过这种方式创建它,尽管看起来有点凌乱。


8

检查 jar 命令是否可用,如果可用,创建类文件和描述文件等的 jar 包。

之后使用jar -cvf <<earname>> <<要打包进 ear 文件的文件>>


4

1
如果您已经同时生成了客户端和EJB,则它们会自动打包到一个企业档案文件(.ear)中,您不需要进行此操作。否则:
将EJB的.jar文件打包到应用程序的.ear文件中。要执行此操作,请使用类似于以下命令的jar命令:
jar -cvf myApplication .ear myService.jar
如果您有一个客户端的.war文件,您可以以相同的方式将其添加到.ear文件中。
创建一个部署描述符application.xml,可以使用应用程序服务器的工具或通过复制和编辑示例来完成,如下所示:
找到示例.ear,它位于examples目录中。
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文件中,还可以添加.war文件的名称。

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

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

jar -uvf myService.ear META-INF/application.xml

1
只是好奇,您是否直接从此链接 https://documentation.microfocus.com/help/index.jsp?topic=%2FGUID-0E0191D8-C39A-44D1-BA4C-D67107BAF784%2FHHADTHDPOY10.html 引用答案?如果是的话,建议同时注明出处。 - tedyyu

0

如果您想从命令行创建一个 ear 文件,以下是您可以尝试的选项。

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

注意:现在更倾向于使用基于 Maven 的构建而不是 ant。

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

mvn clean package

有关配置 ear 中的 war、jar 的更多信息,请参考有关 Java EE 项目的 Maven 问题


你的意思是什么?你是在问是否可以使用“java jar”命令来创建ear文件吗?如果是的话,是可以的。但通常人们会使用maven构建来创建ear文件。 - Arun Chandrasekaran

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接