ファイルを新しいファイルまたはディレクトリに移動するか、ファイルのコレクションを新しいディレクトリに移動します。デフォルトでは、移動先のファイルが既に存在する場合は上書きされます。 overwrite がオフになっている場合、ファイルは移動元のファイルが移動先のファイルよりも新しい場合、または移動先のファイルが存在しない場合にのみ移動されます。Ant での「新しい」という概念については、granularity 属性を参照してください。
リソースコレクションは、移動するファイルのグループを選択するために使用されます。ファイルシステムベースのリソースコレクションのみがサポートされており、これには fileset、filelist、および path が含まれます。Apache Ant 1.7 より前は、<fileset>
のみがネストされた要素としてサポートされていました。リソースコレクションを使用するには、todir 属性を設定する必要があります。
Ant 1.6.3 以降、file 属性を使用してディレクトリ全体を移動(名前変更)できます。tofile が既存のファイルを示す場合、または todir に同じ名前のディレクトリが存在する場合、アクションは失敗します。
属性 | 説明 | 必須 |
---|---|---|
file | 移動するファイルまたはディレクトリ | file または少なくとも 1 つのネストされたリソースコレクション要素のいずれか |
preservelastmodified | 移動されたファイルに、元のソースファイルと同じ最終更新時刻を与えます。(注: Java 1.1 では無視されます) | いいえ; デフォルトは false |
tofile | 移動先のファイル | file 属性を使用する場合、tofile または todir のいずれかを使用できます。ネストされた fileset を使用する場合、fileset のサイズが 1 より大きい場合、または fileset 内のエントリがディレクトリのみである場合、または file 属性が既に指定されている場合は、todir のみが許可されます |
todir | 移動先のディレクトリ | |
overwrite | 移動先のファイルが新しい場合でも、既存のファイルを上書きします | いいえ; デフォルトは true |
force | 読み取り専用の移動先ファイルを上書きします。Ant 1.8.2 以降 | いいえ; デフォルトは false |
filtering | 移動中にトークンフィルタリングを行うかどうかを示します。フィルタの動作については、filter タスクの説明を参照してください。 | いいえ |
flatten | ソースディレクトリのディレクトリ構造を無視し、すべてのファイルを todir 属性で指定された単一のディレクトリにコピーします。 flatten mapper を使用することで同じ効果が得られることに注意してください。 | いいえ; デフォルトは false |
includeEmptyDirs | ネストされた FileSet に含まれる空のディレクトリをコピーします。 | いいえ; デフォルトは yes |
failonerror | false の場合、コピーするファイルが存在しない場合、またはネストされた fileset のいずれかが存在しないディレクトリを指している場合、または移動中にエラーが発生した場合は、警告メッセージをログに記録しますが、ビルドを停止しません。 | いいえ; デフォルトは true |
quiet | trueで failonerror が falseの場合、コピーするファイルが存在しない場合、またはネストされた fileset のいずれかが存在しないディレクトリを指している場合、またはコピー中にエラーが発生した場合、警告メッセージをログに記録しません。Ant 1.8.3 以降。 |
いいえ; デフォルトは false |
verbose | 移動中のファイルをログに記録します。 | いいえ; デフォルトは false |
encoding | フィルタコピー時に想定するエンコーディング。Ant 1.5 以降。 | いいえ; デフォルトはデフォルトの JVM 文字エンコーディング |
outputencoding | ファイルの書き込み時に使用するエンコーディング。Ant 1.6 以降。 | いいえ; 設定されている場合は encoding 、それ以外の場合はデフォルトの JVM 文字エンコーディング |
enablemultiplemappings | trueの場合、タスクは指定されたソースパスのすべてのマッピングを処理します。 falseの場合、タスクは最初のファイルまたはディレクトリのみを処理します。この属性は、 mapper サブ要素がある場合にのみ関連します。Ant 1.6 以降。 |
いいえ; デフォルトは false |
granularity | ファイルが古いと判断するまでの猶予時間(ミリ秒単位)。すべてのファイルシステムがミリ秒レベルまで最終更新時刻の追跡をサポートしているわけではないため、これが必要です。ソースファイルとターゲットファイルが異なるマシン上に存在し、クロックが同期していない場合にも役立ちます。Ant 1.6 以降。 | いいえ; デフォルトは 0 ミリ秒、または DOS システムでは 2 秒 |
performGCOnFailedDelete | Ant がファイルまたはディレクトリの削除に失敗した場合、操作を 1 回再試行します。このフラグが trueに設定されている場合、削除を再試行する前にガベージコレクションを実行します。 このフラグを trueに設定すると、Windows(デフォルトは true)の一部の問題だけでなく、NFS 共有にあるディレクトリツリーの問題も解決することが知られています。Ant 1.8.3 以降 |
いいえ; Windows ではデフォルトで true、その他の OS では false |
ネストされた mapper 要素を使用して、ファイル名の変換を定義できます。 <move>
で使用されるデフォルトのマッパーは、identity です。
マッパーに渡されるソース名は、使用するリソースコレクションによって異なることに注意してください。 <fileset>
またはベースディレクトリを提供するその他のコレクションを使用する場合、マッパーに渡される名前は、ベースディレクトリからの相対ファイル名になります。それ以外の場合は、ソースの絶対ファイル名が使用されます。
Move タスクはネストされた FilterChain をサポートしています。
<filterset>
および <filterchain>
要素が同じ <move>
タスク内で使用されている場合、すべての <filterchain>
要素が最初に処理され、次に <filterset>
要素が処理されます。
単一のファイルを移動(ファイルの名前変更)
<move file="file.orig" tofile="file.moved"/>
単一のファイルをディレクトリに移動
<move file="file.orig" todir="dir/to/move/to"/>
ディレクトリを新しいディレクトリに移動
<move todir="new/dir/to/move/to"> <fileset dir="src/dir"/> </move>
または、Ant 1.6.3 以降
<move file="src/dir" tofile="new/dir/to/move/to"/>
ファイルのセットを新しいディレクトリに移動
<move todir="some/new/dir"> <fileset dir="my/src/dir"> <include name="**/*.jar"/> <exclude name="**/ant.jar"/> </fileset> </move>
ファイルのリストを新しいディレクトリに移動
<move todir="some/new/dir"> <filelist dir="my/src/dir"> <file name="file1.txt"/> <file name="file2.txt"/> </filelist> </move>
ディレクトリ内のすべてのファイルの名前に ".bak"
を追加します。
<move todir="my/src/dir" includeemptydirs="false"> <fileset dir="my/src/dir"> <exclude name="**/*.bak"/> </fileset> <mapper type="glob" from="*" to="*.bak"/> </move>