2012-03-27 11 views
0

ディレクトリのリストを含むfilelistがあります。私はそれを繰り返す必要がありますfilelistと各ディレクトリからファイルを取得し、別の場所にコピーします。ファイルリスト内のディレクトリの内部からファイルをコピーする

私はforeachと組み合わせてfilelistを使用しようとしましたが、filelistforeachサポートしていません。 ANTでこれを行う方法は他にありますか?


forと私の試み。

<copy>タスクでは、ディレクトリが見つからないというエラーが発生します。探しているディレクトリは、与えられたfilelistに最初にリストされているディレクトリではなく、${basedir}/bin/です。私はそれが私のfilelistを正しく読んでいないのでそれが仮定しています。私のforeachバージョンでも同じエラーが発生します。部分的に今

作業

<for 
     list="devBuild" 
     delimiter="," 
     param="dirName" 
     trim="true"> 
     <sequential> 
      <copy 
       todir="./apks/" 
       failonerror="true" 
       verbose="true"> 
       <fileset dir="@{dirName}/../bin/"> 
        <include name="*/*.apk"/> 
       </fileset> 
      </copy> 
     </sequential> 
    </for> 

forループはちょっと...働いています。私がそれを働かせる方法は、すぐ下に示されています。しかし、これはdevBuildの参照が見つからないというエラーになります。ただし、filelistは別のtargetで先に作成され、その参照で作成されます。別のターゲットでその参照IDを使用できないのはなぜですか?

<for 
     delimiter="," 
     param="dirName" 
     trim="true"> 
     <path> 
      <filelist 
       refid="devBuild"></filelist> 
     </path> 
     <sequential> 
      <echo>@{dirName}</echo> 
      <copy 
       todir="./apks/" 
       failonerror="true" 
       verbose="true"> 
       <fileset dir="@{dirName}/../bin/"> 
        <include name="*/*.apk"/> 
       </fileset> 
      </copy> 
     </sequential> 
    </for> 

次のように作業を行いますが、私は再びfilelistを作成するのではなく、参照IDを使用したいと思います。

<for 
     delimiter="," 
     param="dirName" 
     trim="true"> 
     <path> 
      <filelist 
       id="devBuild" 
       dir="${basedir}" 
       files="${build1},${build2},${build3},${build4}" 
      /> 
     </path> 
     <sequential> 
      <echo>@{dirName}</echo> 
      <copy 
       todir="./apks/" 
       failonerror="true" 
       verbose="true"> 
       <fileset dir="@{dirName}/../bin/"> 
        <include name="*/*.apk"/> 
       </fileset> 
      </copy> 
     </sequential> 
    </for> 
+0

あなたは 'for'を使ってみましたか? – talnicolas

+0

はい、解決されません。詳細はopに掲載されています。 – prolink007

+0

私はいくつかの成功を収めましたが、動作するための 'filelist'リファレンスIDを得ることができませんでした。 – prolink007

答えて

1

私は問題を把握しました。私はこの他に私の電話をしているときtarget私はinheritrefsのためのフラグを設定していませんでした。これは他のtargetが参照を取得するように、真である必要があります。

関連する問題