Cambia directory del filelist quando lo fa riferimento
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?
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