2010-03-19 1 views
5

Sto cercando di copiare una directory utilizzando l'attività Ant copy.Come si usa Ant per copiare una cartella?

Sono un principiante di Ant; la mia soluzione attuale è:

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

Mi chiedo se c'è un modo migliore e più breve per ottenere la stessa cosa?

+0

Penso che manchi la tua attuale soluzione. – leedm777

+1

È necessario indentare il codice per includere XML nei tuoi post. – SimonC

risposta

14

Prima di tutto, questi sono gli esempi della documentazione Ant:

copiare una directory ad un'altra directory

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

Copia una serie di file in una directory

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

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

Copia una serie di file in una directory, aggiungendo .bak al nome del file al volo

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

In secondo luogo, ecco l'intero documentation sull'attività di copia.

1

Questo lo farà:

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

Il manuale formica è tuo amico: Ant Manual, in questo caso: Copy Task

4

Solo perché i documenti non erano molto chiaro per me, e perché il tempo che ho trascorso in grado di servire gli altri:

I documenti dicono che questo "copie di una directory (dir1) in un'altra directory (dest)":

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

In realtà, questo non non significa "copia dir1 all'interno dest", ma piuttosto "copiare il contenuto della dir1 all'interno dest ".

(In generale, in formica, il "dir radice" di un filesets -come bene al todir Attribute- non è considerato come parte del gruppo stesso.)

posizionare la directory dir1 all'interno dest uno ha diverse alternative (non del tutto soddisfacente per me - e io avevo immaginato che la nuova DirSet avrebbe aiutato qui, ma nessuno)

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

o

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

Vedere anche here e here.