Maven2とAnt

よく耳にするのが、「Ant と Maven2 ではどっちがいいの?」という質問です。
まずは、下の表を見てください。

機能名 Ant Maven2
javaソースのコンパイル
jarやwarの作成
OSコマンドを呼び出す
(例)native2ascii

できないことはないが、相当面倒くさい
外部jarライブラリ ×
自分で各サイトからダウンロードして集める

Maven2が自動的にかき集めてくれる

AntとMaven2のどっちがいいというのは、どんな使い方をするかによります。

Antの方が向いている場合
・native2asciiコマンドもビルドツールの中でしないと困る人
・Ant用のbuild.xmlを既に完成させているプロジェクト
Maven2の方が向いている場合
・あっちこっちから jar ライブラリを集めるのが面倒な場合(特にServletアプリ)
・多人数でソース共有するような共同作業

管理人はなぜMaven2を使うようになったか

きっかけは、新規にWebのシステム開発をすることになったときでした。
集めないといけない jarのライブラリは相当多く、20本を超えていました

  • DIコンテナ( SpringFramework )を使いました
  • JDBCドライバ
  • jakarat-commons系など

最初は、がんばって集めて Ant で build.xmlを書いたのですが、途中から開発メンバが
増えました。この jar はここから、あのjarはあっちからと説明書を書き始めたのですが、
量が多すぎて大変でした。
しかも、集めたjarの一部でマイナーバージョンが微妙に違っていて、動きが変。。。

そんなとき、偶然Maven2のリリースのニュースが目に留まりました。
なんと、pom.xml( Antのbuild.xmlみたいなもの )に、jarのライブラリ名をバージョンを
書いておくと、自動的にインターネットからかき集めてくれる、超優れもの。

いまでは、新規につくるアプリは全部 Maven2 を使っています。