Pregunta

Quiero cambiar el directorio base de un FileList Al hacer referencia más tarde en mi File Buildfile.

Defino lo siguiente FileList:

<filelist dir="./dev" id="sourceFiles">
    <file name="files/file.php" />
    <file name="files/class.php" />
    <file name="files/functions.php" />
</filelist>

Y mis objetivos son los siguientes

<target name="fetch">
    <copy todir="./src/files">
        <filelist refid="sourceFiles" />
    </copy>
</target>

<target name="build" depends="fetch">
    <replaceregexp match="(\d+.\d+.\d+)(.\d+)?" replace="\1.${build.number}">
        <filelist refid="sourceFiles" />
    </replaceregexp>
</target>

Entonces, al usar el replaceregexp tarea, usará los archivos ubicados en ./dev - Pero quiero que la tarea reemplace en los archivos copiados anteriormente que ahora se encuentran en ./src.

Por supuesto, podría copiar la lista de archivos y usar otro dir, pero me gustaría mucho mantener solo la lista de archivos una vez en mi buildfile.

¿Cómo puedo conseguir esto?

¿Fue útil?

Solución

Creo que lo que estás buscando es un mapeador dentro del comando de copia de la siguiente manera:

<project name="demo" default="copy">

    <property name="build.number" value="1.0.1"/>

    <target name="copy">
        <copy todir="build">
            <fileset dir="src"/>
            <regexpmapper from="^(.*)\.txt$" to="\1.${build.number}"/>
        </copy>
    </target>

    <target name="clean">
        <delete dir="build"/>
    </target>

</project>

Aquí están mis archivos de prueba

|-- build
|   `-- files
|       |-- one
|       |   |-- file1.1.0.1
|       |   `-- file2.1.0.1
|       `-- two
|           `-- file3.1.0.1
|-- build.xml
`-- src
    `-- files
        |-- one
        |   |-- file1.txt
        |   `-- file2.txt
        `-- two
            `-- file3.txt
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top