- Home ›
- Apache Antの使い方 ›
- Copyタスク(コピー) ›
- HERE
copyタスク
ここではビルドの途中でファイルをコピーする方法について見ていきます。「copy」タスクを使います。
基本となるのは下記の属性です。
属性 | 説明 | 必須 |
---|---|---|
file | コピーするファイル | 必須 |
tofile | コピー先となるファイル | tofileかtodirのどちらかが必須 |
todir | コピー先のディレクトリ | tofileかtodirのどちらかが必須 |
overwrite | コピー先のファイルが新しくても既存のファイルを上書きします | × |
コピー元のファイルを「file」属性で、コピー先のファイルかディレクトリを「tofile」属性か「todir」属性で指定します。また、デフォルトでは、コピー元ファイルがコピー先ファイルよりも新しいか、 コピー先ファイルが無い場合にのみ、ファイルがコピーされます。
例えば下記のように記述します。
<copy file="./class/test.class" todir="./to"/>
では実際に試してみましょう。今回の構成は下記のようになっています。
-sample5 build.xml | +--src test.java | +--class test.class | +--to
コンパイル後に「to」ディレクトリにクラスファイルをコピーさせてみます。
コンパイルするプログラムファイルは下記です。
public class test{ public static void main(String args[]){ System.out.println("Antの実験です"); } }
ビルドファイルは下記です。
<?xml version="1.0" encoding="Shift_JIS"?> <project name="antsample" default="compile"> <target name="compile"> <javac srcdir="./src" destdir="./class" /> <copy file="./class/test.class" todir="./to" /> </target> </project>
ではantを実行してみます。
コンパイル後にファイルがコピーされているのが確認できます。
前に記述したように「copy」タスクはコピーするファイルがコピー先に存在しないか、又は存在しても新しくなければ実行されません。先ほどの状態のままもう一度antを実行しても何も処理は行われません。
( Written by Tatsuo Ikura )