Изменить каталог FileList при обращении к нему - PullRequest
0 голосов
/ 20 февраля 2012

Я хочу изменить базовый каталог на FileList при ссылке на него позже в моем файле сборки.

Я определяю следующее FileList:

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

И мои целиследующее

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

Итак, при использовании задачи replaceregexp она будет использовать файлы, расположенные в ./dev - но я хочу заменить задачу в ранее скопированных файлах, которые теперь находятся в ./src.

Конечно, я мог бы скопировать список файлов и использовать другой dir, но я бы очень хотел, чтобы список файлов содержался только один раз в моем файле сборки.

Как мне этого добиться?

1 Ответ

0 голосов
/ 21 февраля 2012

Я думаю, что вы ищете маппер в команде копирования следующим образом:

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

Вот мои тестовые файлы

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