java mover - Cómo copiar un directorio usando Ant




comando archivo (10)

Un buen punto: hormiga solo copiará los subdirectorios si los archivos de origen son más nuevos que los archivos de destino. manual En mi caso, los subdirectores no se copiaban (estoy usando verbose = "true"), ya que no había cambios y ya estaban en el destino. Puede usar "sobrescribir" para forzarlo, o tocar algunos de los archivos en sus subdirectorios de origen.

He utilizado copydir para copiar un árbol de directorios, pero está en desuso. Mi directorio contiene algunos subdirectorios, y algunos contienen archivos y otros contienen más subdirectorios.

¿Cómo puedo copiar todo el árbol?


Copie los contenidos incluyendo el directorio mismo.

<copy todir="${dest.dir}" >  
    <fileset dir="${src.dir.parent}">  
        <include name="${src.dir}/**"/>
    </fileset>
</copy>

Copie los contenidos incluyendo el directorio mismo.

<copy todir="${dest.dir}" >  
  <fileset dir="${src.dir.parent}" includes="${src.dir}/**"/>
</copy>

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 para compilar.

Espero que esto ayude a alguien.


Utilicé etiquetas de inclusión como se muestra en el fragmento de código a continuación 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>

Estoy agregando un patrón más genérico para copiar todas las subcarpetas.

<copy todir="${dest.dir}" >  
  <fileset dir="${src.dir}" includes="**/*"/>
</copy>

Ver Patterns para más detalles.


Otra tarea de hormiga 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 debe copiar la carpeta, así como su contenido. También utiliza la tarea de nombre base para evitar tener que realizar un análisis de ruta manual.

<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>

<copy todir="${dest.dir}" >  
    <fileset dir="${src.dir}" includes="**"/>  
</copy> 

cree que hará lo que quieras ... (Copia recursiva hecha)


Otro uso (en los idiomas que admiten propiedades) es que los establecedores y captadores pueden implicar que una operación no es trivial. Normalmente, usted quiere evitar hacer cualquier cosa que sea computacionalmente costosa en una propiedad.





java ant