複雑な理想的なモノよりも簡単で現実的なモノが受入られる


InfoQ: 議論:Mavenはビルドに適したツールか?


この議論の内容は面白い。Mavenが世の中に登場してから、既に3〜4年ぐらいは経っていますでしょうか?強力なビルドツールという評価はあるものの、あまり普及していないと私は感じています(少なくても私の周りでは)。


ツールに限らずフレームワークやサービスでも、どんなに高機能で理想的なモノであっても、それが複雑であれば(高機能になれば大抵はそうなる)、簡単で現実的なモノ方が世の中に受け入れられるのだと思います。


上記の議論に、以下のような内容があります。

私は、Mavenのように複雑なビルドシステムの受け入れに前向きなのはJavaユーザだけだと思っています。その他のコミュニティにとっては、"これはなんの地獄だ?"と言うことになるでしょう。私にとってのMavenは、ビルドシステムにおけるEJB2です。:複雑すぎて、技術的すぎて、知識を要しすぎます。

私も、この内容はその通りだと思います。私も半年前ぐらいまでは、Mavenを使うことに価値を見出せませんでした。「ビルドするならAntで構わないじゃん」と思ってました。


Mavenを使って自動的に依存ライブラリを取得するようにするよりも、必要なライブラリをまとめてバージョン管理した方が、開発はラクだと思いますし。


ビルドするだけのためにMavenを利用するのは、私はあまりお勧めしません。AntもMavenも、ビルドスクリプトをXMLで記述することにはなるのですが、Mavenの方が取っつきにくいと感じさせられます(これは、得られる情報量が少なかったり、最初に記述する量が多かったりするせいかな!?)。


ただ、それでも、最近私がMavenを使うようになったのは、ただ1つの理由のみ。


レポート機能があるから


CheckStyleFindBugsJUnitの結果などをHTMLレポートとして出力してくれるのは、PM/PLからすると、非常にマネジメントがしやくすなるモノだと感じています。
これは、Antやその他のビルドツールでは、容易には実現できないことです。


なので、私の場合、AntとMavenを併用することもあります。ビルドはAntに任せて、レポートをMavenで出力させて日々のマネジメントに活かす、など。


S2は、S2ContainerがMavenでビルドするようになった頃から、S2コミッタでもMaven使う人が増えたと思います(私もその一人)が、世の中的には、Mavenはどの程度使われているのでしょうかね。