我正在尝试从命令提示符创建一个 EAR 文件。我用过
jar -cvf myServletWAR.ear .
但我的问题是,我怎样才能让这个 EAR 文件在其中包含 WAR 文件和 JAR 文件?
我需要单独创建war文件并包含在ear文件中吗?
我不能为此使用 ANT 文件,因为这个项目的限制很少。
我正在尝试从命令提示符创建一个 EAR 文件。我用过
jar -cvf myServletWAR.ear .
但我的问题是,我怎样才能让这个 EAR 文件在其中包含 WAR 文件和 JAR 文件?
我需要单独创建war文件并包含在ear文件中吗?
我不能为此使用 ANT 文件,因为这个项目的限制很少。
我的 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 文件,因此您可以随时以这种方式创建它,尽管它看起来很乱。
检查 jar cmd 是否正常工作,如果是,则创建类文件和描述符等的 jar。
在那之后jar -cvf <<earname>> <<files want to be in the ear >>
你能试试这个:
jar -xvf myServletWAR.ear
您也可以参考:
如何将 WAR 文件添加到现有的 EAR 文件中?以及如何在一个 .ear 文件中有两个 .war 文件?
您必须在 ear 文件的 application.xml 中添加这些 EAR 文件引用。
如果您同时生成了客户端和 EJB,它们会自动打包到企业归档文件 (.ear) 中,您不需要这样做。否则:
jar -cvf myApplication .ear myService.jar
如果您有一个客户端 .war 文件,您可以以相同的方式将其添加到 .ear 文件中。
使用
应用程序服务器的工具或通过复制和编辑示例来创建部署描述符 application.xml,
如下所示:
找到一个示例 .ear,它位于示例目录中
mapdemo/mapdemo/repos/myService.deploy/JMapServ-WL.ear
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
.jar
归档到一个.ear
jar -cvf myApplication.ear myService.jar
.war
文件,您可以以相同的方式将其添加到.ear
文件中。
请参阅http://supportline.microfocus.com/Documentation/books/sx51/thdpoy10.htm
如果您想从命令行创建耳朵,您可以尝试以下选项。
选项 1. 使用 ant 构建并使用 ear 任务。按照关于蚂蚁耳朵任务使用的stackoverflow问题中所述配置此耳朵任务
注意:如今,基于 Maven 的构建比 ant 更受欢迎。
选项 2. 如果您可以使用 maven,请配置您的模块并使用 maven ear 插件生成一个 ear。下面的命令将能够生成耳朵。
mvn clean package
有关配置 war, jars for an ear的更多信息,请参阅有关 Java EE 项目的 maven 问题。