Question

Je souhaite modifier le répertoire de base d'un FileList lors du référencement plus tard dans mon buildfile.

Je définis le FileList suivant:

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

Et mes objectifs sont les suivants

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

Alors, lorsque vous utilisez la tâche replaceregexp, il utilisera les fichiers situés dans ./dev -. Mais je veux la tâche de remplacer dans les fichiers copiés précédemment qui sont maintenant situés dans ./src

Bien sûr, je pourrais copier la liste des fichiers et utiliser un autre dir, mais je voudrais bien tenir que la liste des fichiers une fois dans ma buildfile.

Comment puis-je y parvenir?

Était-ce utile?

La solution

Je pense que ce que vous cherchez est un cartographe au sein de la commande de copie comme suit:

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

Voici mon fichiers de 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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top