2012-04-09 29 views
6

que tienen la siguiente estructura de carpetas:¿Cómo incluyo un archivo jar en una carpeta lib de un archivo ear usando horm?

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

Mi build.xml contiene las siguientes líneas para crear paquete del oído

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

El código anterior no puede crear un paquete del oído con la carpeta de la liberación que incluye el ProjectEJBClient.jar archivo

Quiero crear una carpeta lib y copiar ProjectEJBClient.jar en esa carpeta lib.

Después de este proceso quiero hacer un proyecto EAR con esta carpeta lib.

No sé cómo crear una carpeta lib y copiar ProjectEJBClient.jar en esa carpeta e incluir esta carpeta en project.ear.

Respuesta

7

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

El prefix="lib" se asegurará de que el frasco estará bajo /lib en su oído.

+0

solución es trabajando – user1314506

0

En mi caso no funcionó, lástima pues necesitaba incluir varios archivos, y lo resuelve utilizando zipfileset de una manera diferente, bajo 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> 
Cuestiones relacionadas