6

我有以下文件夹结构:

project.ear
        lib folder
            ProjectEJBClient.jar
        META-INF folder
        projectEJB.jar

我的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>

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

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

在这个过程之后,我想用这个 lib 文件夹制作一个 EAR 项目。

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

4

2 回答 2

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>

prefix="lib"将确保罐子/lib在您的耳朵下方。

于 2012-04-10T07:58:26.490 回答
0

就我而言,它不起作用,因为我需要包含几个文件,并且我在 apache-ant-1.9.1 和 jdk1.7.0_60 下以不同的方式使用 zipfileset 解决了问题:

<ear earfile="${dst_dir}/${ear_file}" appxml="${dep_dir}/ear/application.xml">
  <zipfileset 
    dir="${m2.home}/commons-codec/commons-codec/1.9" 
    prefix="lib" 
    includes="**/*.jar"/>
  <zipfileset
    dir="${m2.home}/log4j/log4j/1.2.17"
    prefix="lib"
    includes="**/*.jar"/>
  <fileset dir="${dst_dir}" includes="${jar_file}"/>
  <fileset dir="${dst_dir}" includes="${war_file}"/>
</ear>
于 2014-11-08T05:46:01.537 回答