Solía copydir
copiar un árbol de directorios pero está en desuso. Mi directorio contiene algunos subdirectorios, y algunos de ellos contienen archivos y otros contienen más subdirectorios.
¿Cómo puedo copiar todo el árbol?
Solía copydir
copiar un árbol de directorios pero está en desuso. Mi directorio contiene algunos subdirectorios, y algunos de ellos contienen archivos y otros contienen más subdirectorios.
¿Cómo puedo copiar todo el árbol?
Respuestas:
<copy todir="${dest.dir}" >
<fileset dir="${src.dir}" includes="**"/>
</copy>
cree que hará lo que quiera ... (copia recursiva hecha)
includes
no es necesario cuando quieres todo (ver la respuesta del usuario s1n )
Copie el contenido, incluido el directorio en sí.
<copy todir="${dest.dir}" >
<fileset dir="${src.dir.parent}">
<include name="${src.dir}/**"/>
</fileset>
</copy>
Nota: $ {src.dir} es relativo a $ {src.dir.parent} y no es una ruta completa
x.parent
se supone que NO SERÁ el parent
de x
... -_-
Solo debería tener que especificar el directorio (sin la propiedad incluye):
<copy todir="../new/dir">
<fileset dir="src_dir"/>
</copy>
Consulte el manual para obtener más detalles y ejemplos.
Copie el contenido, incluido el directorio en sí.
<copy todir="${dest.dir}" >
<fileset dir="${src.dir.parent}" includes="${src.dir}/**"/>
</copy>
Un buen punto: ant solo copiará los subdirectorios si los archivos de origen son más nuevos que los de destino. [1] En mi caso, los subdirectorios no se estaban copiando (estoy usando verbose = "true"), ya que no hubo cambios y ya estaban en el destino. Puede usar "sobrescribir" para forzarlo, o tocar algunos de los archivos en sus subdirectorios de origen.
Usé incluir etiquetas como se muestra en el siguiente fragmento de código en mi archivo build.xml para copiar archivos jar individuales dentro de un directorio.
<target name="devInstall" depends="generateXsl" description="testing">
<copy flatten="true" todir="${test}/WEB-INF/lib" overwrite="${overwrite}">
<fileset refid="buildJars"/>
<fileset dir="lib">
<include name="commons-collections-*.jar"/>
<include name="commons-io-*.jar"/>
<include name="kodo/*.jar"/>
<include name="mail*.jar"/>
<include name="activation*.jar"/>
<include name="guava*.jar"/>
<include name="jna*.jar"/>
</fileset>
</copy>
</target>
A partir del ejemplo aquí , puede escribir un archivo Ant simple usando la tarea de copia.
<project name="MyProject" default="copy" basedir=".">
<target name="copy">
<copy todir="./new/dir">
<fileset dir="src_dir"/>
</copy>
</target>
</project>
Esto debería copiar todo el interior src_dir
(excluyéndolo) a new/dir
.
Otra tarea de hormigas es Copydir . La parte clave aquí es incluir el nombre del directorio que desea copiar después del directorio dest. Los subdirectorios y archivos se copiarán automáticamente.
<target name="-post-jar">
<copydir src="config" dest="${dist.dir}/config/"/>
</target>
Este código debería copiar la carpeta y su contenido. También utiliza la tarea de nombre base para evitar tener que realizar un análisis manual de la ruta.
<project name="Build" default="doCopy">
<property name="source.dir" value="SourceDirPathGoesHere"/>
<property name="dest.dir" value="DestinationDirPathGoesHere"/>
<target name="doCopy">
<basename property="source.dir.base.name" file="${source.dir}"/>
<copy todir="${dest.dir}">
<fileset dir="${source.dir}/.." includes="${source.dir.base.name}/**"/>
</copy>
</target>
</project>
Finalmente copié usando el siguiente código
<copy todir="${root.dir}/dist/src">
<fileset dir="${root.dir}/build/src" includes="**"/>
</copy>
Esto copiará la carpeta src de dist a build.
Espero que esto ayude a alguien.