Windows2000 + Ant メモ(2003/09/09) 
 

実行した環境

OS

Windows2000

J2SE

1.4.1.01

Ant ってば?

Java版の make って思って頂ければピンとくると思いますが、すでに make になれてしまった人だと少し理解に苦しむかもしれません。

第一歩として、XMLで記述しないといけないということと、コマンド実行を記述する”targetタグ”には実際のコマンドと対応している”タスク名”を記述することが苦しむ所です。

本家 : THE APACHE ANT PROJECT

参考 : @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 のドキュメントを参考にする(英語)。(好感度:中)

ぐぐっってみる。そして解決する。(好感度:高)

って冗談です(笑)。下記サイトが判り易かったので参考にしてみたら如何でしょうか?

本家 : タスク

参考 : タスク一覧

参考 : 独自のタスク定義