Maven?Ant?

CraigはDCさくらユーザだった!?」で,AntでMavenちっくなことをStruts 1.2.8のソースパッケージでやってると書いたが,実際にはStrutsをビルドするために必要な依存ライブラリを,AntのGetタスクでダウンロードしているに過ぎない。

例えば,こんな感じ。

  

  

    usetimestamp=”true” ignoreerrors=”true”     src=”http://www.ibiblio.org/maven/…/junit-3.8.1.jar”/>

  ・・・

上記の場合はbuild.xmlファイルに直書きしちゃってるけど,プロパティファイルをうまく使えば,Mavenのproject.xmlのdependency系の処理は,Getタスクで十分代用できそうだ。

ただし,「maven eclipse」でEclipseのプロジェクトファイル生成&クラスパス設定とかをやってくれたりするので,やっぱりMavenは便利なレベルまで仕上がってるなぁという印象。なので,わざわざAntでMavenちっくなことを頑張るのはどうかなと思い始めた(と,前のエントリと正反対なことを言ってみる)。MevenのGoalを自作できるくらいMavenを使い倒せるようになることが,まずは先かな。ま,所詮中身はAntちっくだけど。

僕は「Maven便利だし楽だし,いざとなればGoal作ればいいじゃん」と思っているんだけど,何故か「ビルド作業,なんでMavenなの?Antに書き換えようよ」と僕に言ってくる人が多い。AntにできてMavenにできないことをやって,ビルド作業の効率や質が格段に上がるなら理解できるんだけど,そういう理由を説明できるわけでもない。よくよく聞くと,どうやら「Maven知らないから」という理由っぽい。

ビルドファイルを書く人は,きっと実装系を統括する人だし,そういう人はAntやMaven,はたまたmakefileやIDEなど,ビルド系に関する広い知識を持って,その上で「このPJはどういうものを使えばいいか」を判断すべきだ。単にその人が「Maven知らないから」という理由で,今までMavenでGoalとか作ってビルド作業が確立されているPJをAntに書き換えようとするなんて,僕には許容できない。まずはMaven勉強せい,その上で「やっぱりMavenはこのPJにあってないよね」という発言をしろ,と言いたい。

Mavenは僕にとってはAntのWrapperっていう認識だ。JFaceとSWTの関係に似ていると思っている。なので,ますます「MavenやめてAntに」が,よくわからない。

今日では,オープン系のプロダクトが無数にあり,どれを選ぶのかは非常に難しい。なので,選ぶ立場の人間は,より多くの選択肢を知った上で,目の前のPJに最適な選択をして欲しい。「PJで最適と思われるのは,AとB。どっちをとっても大丈夫なので,あとは趣味だね」という線引きの度合いが正しくできるようになれば,いい感じなんだろうな。

このエントリーをはてなブックマークに追加

関連記事

「エンジニアチームの生産性の高め方」という書籍が出版されました

2023年のRemap

Remapにファームウェアビルド機能を追加しました

Google I/O 2023でのウェブ関連のトピック

2022年を振り返って