- 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 )
JavaDrive