Domanda

Voglio cambiare la directory di base di a FileList Quando lo fa riferimento più avanti nel mio file build.

Definisco quanto segue FileList:

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

E i miei obiettivi sono i seguenti

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

Quindi, quando si utilizza il replaceregexp attività, utilizzerà i file situati in ./dev - ma voglio che l'attività sostituisca nei file copiati in precedenza che ora si trovano ./src.

Naturalmente, potrei copiare l'elenco dei file e usarne un altro dir, ma mi piacerebbe molto tenere l'elenco dei file solo una volta nel mio file build.

Come posso raggiungere questo obiettivo?

È stato utile?

Soluzione

Penso che quello che stai cercando sia un mapper all'interno del comando di copia come segue:

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

Ecco i miei file di test

|-- 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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top