How do I include a jar file into a lib folder of an ear file using ant?

大兔子大兔子 提交于 2020-01-13 10:04:37

问题


I have the following folder structure:

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

My build.xml contains the following lines to create EAR package

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

The above code can't create an EAR package with lib folder which includes the ProjectEJBClient.jar file

I want to create a lib folder and copy ProjectEJBClient.jar into that lib folder.

After this process I want to make an EAR project with this lib folder.

I don't know how to create lib folder and copy ProjectEJBClient.jar into that folder and include this folder into project.ear.


回答1:


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

The prefix="lib" will make sure, that the jar will be under /lib in your ear.




回答2:


In my case it didnt work, becouse I needed to include several files, and I solved using zipfileset in a different way, under 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>


来源:https://stackoverflow.com/questions/10072835/how-do-i-include-a-jar-file-into-a-lib-folder-of-an-ear-file-using-ant

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!