如何包括一个jar文件到使用Ant EAR文件的lib文件夹?(How do I include a

2019-09-16 10:09发布

我有以下文件夹结构:

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>

上面的代码不能创建EAR包lib文件夹,其包括ProjectEJBClient.jar文件

我想创建一个lib文件夹,复制ProjectEJBClient.jar成lib文件夹。

这个过程后,我想和这个lib文件夹的EAR项目。

我不知道如何创建lib文件夹,复制ProjectEJBClient.jar到该文件夹,包括这个文件夹到project.ear。

Answer 1:

使用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在你的耳边。



Answer 2:

在我的情况下,它没有工作,becouse我需要包含多个文件,并解决了我以不同的方式使用zipfileset,在Apache-ANT-1.9.1and jdk1.7.0_60:

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


文章来源: How do I include a jar file into a lib folder of an ear file using ant?
标签: ant