Changement de répertoire de FileList lors du référencement, il
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?
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