倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

Maven Eclipse Plugin vs. Maven Integration for Eclipse

Maven Eclipse Plugin (以下、Eclipse プラグイン)とMaven Integration for Eclipse (以下、m2eclipse)は、どちらも Maven2Eclipse を連携させるツール。 とはいっても、もちろんこれら2つのツールに根本的な違いがある:

主体が Maven2 にあるのか、Eclipse にあるかの違いです。

ところで、Eclipse プラグインによって生成したプロジェクトを Eclipse 上に読み込んで、それを m2eclipse によって Maven2 プロジェクトに変更してみる*1と、「ライブラリが重複している」旨のメッセージが表示された。 一応、そのまま開発は続けられそうだけど、チョット気持ち悪い*2

なので、どういう場合にどちらを使えば良さそうかを考えてみましょう。

まず、m2eclipse の長所と短所を考えてみると、 

  • 長所
    1. Eclipse 上ですべて済ませられる
    2. ライブラリへの依存性が追加しやすい
    3. Maven2 をワン・クリックで実行できる(最初の1回はゴールの設定が必要)
  • 短所
    1. Maven2 プロジェクトを新規に作成する際、ソース・フォルダは手動で作成しなければならない
    2. 「ライブラリへの依存性追加」以外のプロジェクト設定は、結局 pom.xml を手で修正しなければならない
    3. Maven2 のマルチ・プロジェクト*3は扱えない

で、これらをEclispe プラグインの場合と比べると、

  • 長所の下2つは、m2eclipse がインストールされていれば、m2eclipse によって Maven2 プロジェクトに変更しなくても pom.xml のポップアップ・メニューから実行できる
  • 短所の1つ目は、Eclipse プラグインでプロジェクト・テンプレートを生成して、Eclipse 上に読み込むのと、手間的にはあまり変わらない
  • 短所の2つ目は、Eclipse プラグインでも手で書かなければならない

なので、2つのツールは、プロジェクトの複雑さ(マルチ・プロジェクトかどうか)で使い分ければよいかと思います。 手軽にプロジェクトを始めるなら、m2eclipse のみでよいでしょう。 どちらにしろ、Eclpise 上で開発を行うなら、m2eclipse はインストールしておきましょう。

ちなみに、m2eclipse はまだ開発途上*4なので、上記の短所は今後改善されていくかと思います(特に上2つは)。

▲ところで、「ライブラリへの依存性を追加」する際、「Repository Search ダイアログ」でライブラリの名前を検索してバージョンを選択しますが、名前に数字が入っているライブラリ(log4jdom4j など)は検索に掛からないようです・・・

*1:プロジェクトのポップアップ・メニューから「Maven2 → Enable」とする。

*2:プロジェクトのポップアップ・メニュー → Maven2 にある「Enable」と「Disable」を繰り返しているとこのメッセージが表示されました。 単に「Disable」がうまく働いてないだけかな・・・

*3:大きいプロジェクトを複数のモジュールに分割して開発するために、複数のプロジェクトを統括して扱うプロジェクト。 機会があれば扱います。

*4:現在のバージョンは 0.0.9