Windows2000 + Ant メモ(2003/09/09)
OS
Windows2000
J2SE
1.4.1.01
Java版の make って思って頂ければピンとくると思いますが、すでに make になれてしまった人だと少し理解に苦しむかもしれません。
第一歩として、XMLで記述しないといけないということと、コマンド実行を記述する”targetタグ”には実際のコマンドと対応している”タスク名”を記述することが苦しむ所です。
参考 : @IT:現場に活かすJakarta Project
参考 : Antの使い方
参考 : Antについて
どのように使うのかは、以下を参照してください。また ant の設定は、サーチエンジンで探すと山のように出てきますので、そちらを参考にしてもよし超メモの↓をみてもよし判る方を参考にしてください。
1.Antを適当なディレクトリに解凍する。(ex. c:\java\ant) 2.%PATH% 環境変数に ディレクトリーパスを追加します (ex. c:\java\ant\bin) 3.%ANT_HOME% 環境変数に ルートディレクトリーパスを追加します (ex. c:\jaba\ant)
Ant を使ってコンパイル(?)する場合、"build.xml" ファイルを作っておくと自動的に読み込み実行してくれます。
根本的な書式ですが、XMLタグで3つの要素に別れます。
1."project タグ" プロジェクト単位のトップレベル要素(1つのみ記述する)
2."target タグ" ビルド(処理)単位の要素(1つ以上記述する)
3."タスク タグ" 処理集合体の要素(1つ以上記述する)
上記の詳しい記述方法、意味についてはサーチエンジンで探すとして、下記のサンプルをみてください。いろんなツッコミはあるとおもいますが、それが判るようになればたいしたものです。
<?xml version="1.0" encoding="Windows-31J"?> <project name="foo" default="copy_samp" basedir="."> <property name="hoge" value="hello ant!"/> <property name="base" value="./WEB-INF/"/> <property file="build.properties" /> <target name="copy_samp" depends="archive"> <jar jarfile="${base}/tmp/sample.jar" basedir="${base}/tmp"></jar> </target> <target name="archive"> <copy todir="./WEB-INF/tmp"> <fileset dir="./WEB-INF/classes"> <include name="*.class"/> </fileset> </copy> </target> <target name="hello" depends="hello2"> <echo message="This is echo message=${hoge}" /> </target> <target name="hello2"> <echo message="This is echo message2=${AAA}" /> </target> </project>上記を実行したと仮定して話を進めます。実行すると下記の動作をします。
1.あるTomcat構成ディレクトリ下の "./WEB-INF/classes" 以下に存在する *.calss ファイルを "./WEB-INF/tmp" にコピーします。(target = "archive")
2."./WEB-INF/tmp" にコピーしたファイル郡を、 "sample.jar" ファイルにまとめます。
ここでポイントは
1."ant"をコマンド実行すると、"project タグ"に書かれた default="copy_samp" を実行すること。
2."copy_samp"実行前に、depends="archive" が実行されること。
3."${base}" という部分が "./WEB-INF/" と展開されていること。
あとは、一生懸命に試行錯誤を試してみましょうぅ。習得の早道は、回り道かと思われがちですがトライ&トライ&トライです。
基本的な記述は、上記にも書いた通りの3つの要素からなります。ただし、タスクに関しては膨大な量(数)がありますので、どの教科書にも書いてあるとおり(←ウソです)下記の方法で解決しましょう。
・横にいる人を捕まえて聞き出す。(好感度:低)
・タクスのプロを捕まえて聞き出す。(好感度:低)
・Ant のドキュメントを参考にする(英語)。(好感度:中)
・ぐぐっってみる。そして解決する。(好感度:高)
って冗談です(笑)。下記サイトが判り易かったので参考にしてみたら如何でしょうか?
本家 : タスク
参考 : タスク一覧
参考 : 独自のタスク定義