2004BlogAntCommentsTweetPocketAntはビルドツールです。OSや環境に依存しないビルドツールということで幅広く使われています。個人的にAntを使う理由というのは、ビルド以外のいろんな設定が簡単に出来ることです。環境ごとに異なった設定ファイルを作りたいときに、ベースとなるファイルを一つ用意するだけで、Filterという機能を使って設定ファイルの内容を変化させることが出来ます。他にも、JUnitを使ったときに、Reportを自動で生成する機能や、Webアプリケーション用のwarファイルを作りそのままデプロイしたりと、色々なことが連続的に出来るのが気に入っています。作業と作業の間に人の手を入れずに実行できるので、作業忘れが発生しないというのが特徴です。解説Antのサンプルビルドファイルを元にAntを理解していきます。「build.xml」という名前で作る。Antはビルドファイルを読み込んで動作します。打つことで、build.xmlというファイルを読み込んでデフォルトタスクを実行します。ビルドファイルや実行タスクを指定することも出来ます。属性には、デフォルトのタスク名やベースとなるフォルダをしてすることが出来ます。compile、ベースディレクトリがカレントディレクトリになります。タスクは、設定情報を定義するpropertyタスクは、name属性に指定しな名前にマッピングされる値を定義します。いう方法で取り出せます。1つめの例が、単純にnameに対してvalueを設定する方法です。./src2つめの例は、name属性に対して、PATH情報を設定しています。location属性で値を設定すると、値が絶対パスとして定義されます。C:\java\ant\classes3つめの例は、設定ファイルに定義されている値を読み込みます。file属性で指定されたファイルからname=valueという情報を読みとります。prefixが指定されていると、読み込んだname属性の頭にprefixで指定した値を付けて、valueを取り出せるようになります。1.6.14つめの例は、環境変数を読み込むときに使用するプレフィックスを指定します。タスクは、ファイルの集合を定義するfilesetタスクは、ファイルの集合を定義します。コマンドで使用するクラスパスや、ライブラリパスなどを設定するのに便利です。id属性に指定した名前で、ビルドファイル中から呼び出されます。dir属性は、ファイルの存在場所を指定します。include・exclude属性を使って、集合に含めるファイルを選択します。パターンとして使える文字と意味はAnt詳細というページを参考にしてください。タスクの集合を定義するには、targetタスクを利用しますタスクをまとめて実行したい場合には、targetタスクを利用します。通常、意味のある単位でタスクをまとめます。JUnitでテストを行う、javacコマンドでコンパイルしてクラスファイルだけを別のフォルダに移動させる、jarコマンドでファイルを圧縮してデプロイするなどです。タスクを使うフォルダの作成には、mkdirタスクを使います。この他、ファイルを削除したり(deleteタスク)、ファイルを移動したり(moveタスク)もできます。antタスクを呼び出すビルドファイルを分割したい場合があります。非常に大きなファイルになってしまったり、環境に応じて読み込むビルドファイルを変えたりしたい場合です。そんなときは、antタスクを使って、別のビルドファイルを読み込むことが出来ます。antfile属性に読み込むビルドファイルを指定します。target属性には、呼び出すタスクを指定します。copyタスクを利用するファイルをコピーしたい場合は良くあります。moveタスクとの違いは、copyはコピー元のファイルが残ることです。JUnitとJUnitReportを使うAntにはJUnitを実行して、その結果をレポートにまとめるタスクが存在します。細かいタスクの説明は参考文献を見てもらうとして、レポートに必要な条件は1つだけです。JUnitのサマリーをXML形式で出力すること。type="xml")JUnitとJUnitReportタスクを使うと、それなりにしっかりとした形式でテスト結果が出力されるようになります。テスト結果をプロジェクトメンバーで共有したい場合などに利用できます。タスク環境によって設定ファイルを複数用意したい場合があると思います。そんな時、ベースとなる設定ファイルを一つ用意して、Filterタスクを利用して、環境に合わせた設定ファイルを作ることが出来ます。Antは、非常にたくさんのことが出来るビルドツールです。CVSから最新のファイルを取得して、コンパイルしてデプロイするなんて動作も、Antの達人にしてみれば朝飯前なことでしょう。(^^;)今回はAntを勉強する取っ掛かりとしてサンプルファイルを元に簡単な説明書きだけを載せておきました。(勉強会用の資料としてつくりましたので・・・)これを気に、Antに興味がわいたなら勉強会大成功ということにしておきます。プロジェクト管理ツール「Maven」Antはビルドツールです。ただのビルドツールではなく、タスクを利用して定型作業を自動化したり、JUnitなどと連携して自動テストを行ったりも出来ます。プロジェクトで開発を行っていくと、さまざまな問題点がでてきます。開発者ごとにビルドの構成が変わってくるということがあげられます。開発環境が違えば、それぞれ開発用のビルドファイルを用意しなければなりません。ビルドの手順も人それぞれによって変わってきてしまいます。これらの問題点というのは、プロジェクト管理の範疇に入ってくる問題といえます。Antにはプロジェクト管理の機能が抜けているといえるでしょう。個人で開発を行う上では非常に便利なAntですが、複数人で開発を行うときは、気をつけなければならない点が増えてきてしまいます。いった問題点を解決してくれるのが「Maven」です。MavenはApacheプロジェクトで作られている、Java開発プロジェクトの管理および開発チーム間での情報共有のために用いられるツールです。Mavenに関しての詳しい解説は参考ページを見てください。ObjectClub参考WebのAnt解説ページです。詳説Antの解説本です。Web系の方が強いですがスマホアプリもできます。Webサービス開発やスマホアプリ開発案件あればお声がけください。