2011-02-02 44 views
7

Estoy usando ant para construir mi aplicación web. Estoy seguro de que esto es simple, pero no puedo entender cómo decirle a hormiga que cree una carpeta específica en el directorio WEB-INF y que copie archivos.Usar la tarea ant war para incluir archivos en el directorio WEB-INF

Mi tarea hormiga guerra se parece a esto:

<target name="warItUp" depends="compile"> 
    <war destfile="MyApp.war" webxml="${home.dir}\WEB-INF\web.xml"> 

     <classes dir="${classes.dir}"/> 
     <classes file="${src.dir}/hibernate.cfg.xml"/> 
     <classes dir="${src.dir}" includes="**/*.hbm.xml"/> 

     <!-- Include the PDF files --> 
     <fileset dir="${home.dir}/PDFs"> 
      <include name="**/*.pdf"/> 
     </fileset> 

     <!-- Include the JSP files --> 
     <fileset dir="${home.dir}/JSPs"> 
      <include name="**/*.jsp"/> 
     </fileset> 

     <!-- Include the images --> 
     <fileset dir="${home.dir}/images"> 
      <include name="**/*"/> 
     </fileset>   
    </war> 

Todos los elementos funcionan fileset es decir, que incluyen los archivos pdf, JSP y de imagen en el directorio raíz del archivo de la guerra.

Pero si quiero crear un subdirectorio en el directorio WEB-INF del archivo war e incluir archivos en él, ¿cómo lo especifico? p.ej. Digamos que quería incluir WEB-INF/TagLibraryDescriptors/MyTagLib.tld en el archivo war o si quería crear una carpeta WEB-INF/JSP en mi archivo war y copiarle todos los archivos JSP.

Gracias.

+0

encontrado una solución a mí mismo, véase la respuesta a continuación . Perdón por perder el tiempo de alguien. – CodeClimber

Respuesta

14

OP aquí, gracias por todas las respuestas. Encontré otra solución: hay un elemento webinf que se puede incluir en la tarea de guerra.

Esto copiará los archivos de la carpeta JSP de origen en la carpeta WEB-INF en el archivo de la guerra:

<webinf dir="${home.dir}/JSPs" 
includes="**/*.jsp"> 
</webinf> 

mientras que esto va a copiar los archivos de la carpeta JSP de origen en la carpeta WEB-INF/JSP (mi opción preferida):

<webinf dir="${home.dir}" 
includes="/JSPs/**/*.jsp"> 
</webinf> 

Creo que me quedaré con esta solución, pero gracias por las respuestas.

1

intenta crear este directorio en su proyecto y luego sólo tiene que añadir el conjunto de archivos como el siguiente:

<fileset dir="${home.dir}/WEB-INF/mydirectory/*"> 
      <include name="**/*"/> 
</fileset>   
0

Por qué no crear la estructura de directorio que necesita la manera mkdir?

5

Como alternativa a la webinf elemento anidado, también se puede utilizar el elemento zipfileset, que le permite especificar la carpeta de origen y el prefijo de la ruta en el archivo:

<zipfileset dir="${home.dir}/JSPs" includes="**/*.jsp" prefix="WEB-INF/JSPs"/> 
Cuestiones relacionadas