2010-03-19 21 views
5

Estoy intentando copiar un directorio utilizando la tarea Ant copy.¿Cómo uso Ant para copiar una carpeta?

Soy un novato en Ant; mi solución actual es:

<copy todir="${release_dir}/lib"> 
    <fileset dir="${libpath}" /> 
</copy> 

Me pregunto si hay una forma mejor y más corta para lograr lo mismo.

+0

Creo que te falta tu solución actual. – leedm777

+1

Debe aplicar sangría al código para incluir XML en sus publicaciones. – SimonC

Respuesta

14

En primer lugar, los que son los ejemplos de la documentación Ant:

Copiar un directorio a otro directorio

<copy todir="../new/dir"> 
    <fileset dir="src_dir"/> 
</copy> 

Copiar un conjunto de archivos en un directorio

<copy todir="../dest/dir"> 
    <fileset dir="src_dir"> 
    <exclude name="**/*.java"/> 
    </fileset> 
</copy> 

<copy todir="../dest/dir"> 
    <fileset dir="src_dir" excludes="**/*.java"/> 
</copy> 

Copiar un conjunto de archivos en un directorio, agregando .bak al nombre de archivo sobre la marcha

<copy todir="../backup/dir"> 
    <fileset dir="src_dir"/> 
    <globmapper from="*" to="*.bak"/> 
</copy> 

En segundo lugar, aquí está todo documentation sobre la tarea de copia.

1

Esto se hace:

<copy todir="directory/to/copy/to"> 
    <fileset dir="directory/to/copy/from"/> 
</copy> 

El manual de hormigas es su amigo: Ant Manual, en este caso: Copy Task

4

El hecho de que los documentos no eran muy claro para mí, y por el tiempo que pasé puede servir a los demás:

Los documentos dicen que esta "copia un directorio (dir1) a otro directorio (dest)":

<copy todir="../new/dest"> 
    <fileset dir="src/dir1"/> 
</copy> 

En realidad, esto no quiere decir no "copia dir1 dentro dest", sino más bien "copiar el contenido de dir1 dentro dest ".

(En general, en la hormiga, el "directorio raíz" de un filesets -así en el todir atributo, no se considera como parte de la propia serie.)

Para colocar el directorio dir1 dentro dest uno tiene varias alternativas (no totalmente satisfactorio para mí - y yo había imaginado que el nuevo DirSet ayudaría aquí, pero hay)

<copy todir="../new/dest/dir1"> 
    <fileset dir="src/dir1"/> 
</copy> 

o

<copy todir="../new/dest"> 
    <fileset dir="src" includes="dir1/**"/> 
</copy> 

Vea también here y here.

Cuestiones relacionadas