tutorial instalar java ant build

java - instalar - ¿Cómo elimino un dirset de directorios con Ant?



building apache ant (3)

Quiero eliminar todos los directorios y subdirectorios en un directorio raíz que contenga "tmp" en sus nombres. Esto debería incluir cualquier archivo .svn también. Mi primera suposición es usar

<delete> <dirset dir="${root}"> <include name="**/*tmp*" /> </dirset> </delete>

Esto no parece funcionar ya que no puede anidar un dirset en una etiqueta de delete .

¿Es este un enfoque correcto, o debería estar haciendo otra cosa?

  • versión de hormiga == 1.6.5.
  • versión java == 1.6.0_04

Aquí está la respuesta que funcionó para mí:

<delete includeemptydirs="true"> <fileset dir="${root}" defaultexcludes="false"> <include name="**/*tmp*/**" /> </fileset> </delete>

Tenía una complicación adicional que necesitaba para eliminar los directorios .svn también. Con los defaultexcludes , se excluyeron los archivos .* , Por lo que los directorios vacíos no estaban realmente vacíos, por lo que no se eliminaron.

El atributo includeemptydirs (thanks, flicken, XL-Plüschhase) permite que el comodín ** final coincida con una cadena vacía.


tratar:

<delete includeemptydirs="true"> <fileset dir="${root}"> <include name="**/*tmp*/*" /> </fileset> </delete>

¡Gracias, amigo!


Solo quería agregar que la parte de la solución que funcionaba para mí se agregaba /** al final de la ruta de inclusión. Intenté lo siguiente para eliminar los directorios de Eclipse .settings:

<delete includeemptydirs="true"> <fileset dir="${basedir}" includes"**/.settings"> </delete>

pero no funcionó hasta que lo cambié a lo siguiente:

<delete includeemptydirs="true"> <fileset dir="${basedir}" includes"**/.settings/**"> </delete>

Por alguna razón, al agregar /** a la ruta, se eliminan los archivos en el directorio correspondiente, todos los archivos en todos los subdirectorios, los subdirectorios y los directorios coincidentes. Agregar /* solo elimina archivos en el directorio coincidente pero no eliminará el directorio coincidente.