質問

aのベースディレクトリを変更したい FileList 後で私のbuildfileでそれを参照するとき。

以下を定義します 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回だけファイルのリストを保持したいと思います。

どうすればこれを達成できますか?

役に立ちましたか?

解決

あなたが探しているのは、次のようにコピーコマンド内のマッパーだと思います:

<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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top