如何使用ant将jar文件包含到ear文件的lib文件夹中?

use*_*506 6 ant

我有以下文件夹结构:

project.ear
        lib folder
            ProjectEJBClient.jar
        META-INF folder
        projectEJB.jar
Run Code Online (Sandbox Code Playgroud)

build.xml包含以下几行来创建EAR包

<ear destfile="${build.dir}/myapp.ear" appxml="${src.dir}/metadata/application.xml">
      <fileset dir="${build.dir}" includes="ProjectEJBClient.jar"/>
      <fileset dir="${build.dir}" includes="projectEJB.jar"/>
</ear>
Run Code Online (Sandbox Code Playgroud)

上面的代码无法创建包含该ProjectEJBClient.jar文件的lib文件夹的EAR包

我想创建一个lib文件夹并复制ProjectEJBClient.jar到该lib文件夹中.

在这个过程之后,我想用这个lib文件夹创建一个EAR项目.

我不知道如何创建lib文件夹并将其复制ProjectEJBClient.jar到该文件夹​​中,并将此文件夹包含在project.ear中.

oer*_*ers 7

使用zipfileset:

  <ear destfile="${build.dir}/myapp.ear" appxml="${src.dir}/metadata/application.xml">
    <zipfileset dir="." prefix="lib">
      <include name="ProjectEJBClient.jar"/>
    </zipfileset>
    <fileset dir="${build.dir}" includes="projectEJB.jar"/>
  </ear>
Run Code Online (Sandbox Code Playgroud)

prefix="lib"将确保,那罐子会根据/lib你的耳朵.