2012-02-20 1 views
0

FileListのベースディレクトリを後でビルドファイルで参照するときに変更したいと考えています。参照時に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を使用することもできますが、私のビルドファイルには一度だけファイルのリストを保持したいと思っています。

どうすればこの問題を解決できますか?

+0

patternset(http://ant.apache.orgです/manual/Types/patternset.html)は、異なる 'トップディレクトリ'を持つ複数のファイルセットを作成するのに役立ちます。 – Jayan

答えて

0

私は次のように何を探していることは、copyコマンド内のマッパーであると思う:

<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 
関連する問題