MarketPlaceからのインストールなど、ビミョーに変わってたりするのでメモ。 * 1. Eclipse 3.7 (Indigo) Java開発用をGET MergeDocのPleiadesを使ってもいいし、eclipse.orgからGETしても良い。 - MergeDocのPleiades, "Ultimate"か"Java"を使います。 -- http://mergedoc.sourceforge.jp/ - eclipse.orgからのDL : 特にこだわりが無ければ"Eclipse IDE for Java EE Developers"で良いと思います。 -- http://www.eclipse.org/downloads/ * 2. Subversiveをインストール Eclipse上でSubversionのリポジトリからチェックアウトしたりcommit出来るようになります。 MergeDocのPleiadesの場合、既にsubversiveが同梱されてますのでskipです。 eclipse.orgからDLした場合: + "Help" -> "Eclipse MarketPlace" -> "subversive"で検索 + "Subversive - SVN Team Provider" をインストール + インストールしてEclipseを再起動すると、コネクタ選択画面が出てくる(出てこない場合は適当にSVNリポジトリからチェックアウトしようとすると初回に訊かれるハズ)ので、SVN Kitなり適当なコネクタ(ドライバ?)を選択。 * 3. m2e をインストール Eclipse上でMavenプロジェクトを作成したり、"mvn"コマンドのランチャーからビルドしたり出来るようになります。また、Eclipseプロジェクト用にビルドパスを調整してくれます。 Eclipse 3.6(Helios)の頃は"m2eclipse"だったんですが、3.7(Indigo)時代では単に"m2e"と呼ばれているようです。ヤヤコシイですね。 + "Help" -> "Eclipse MarketPlace" -> "m2e"で検索 + "Maven Integration for Eclipse" をインストール * 4. m2e-subversiveをインストール さて、これでSubversionとMavenそれぞれの環境は整いました。 ところが、これだけでは "SVN上のMavenプロジェクトをインポートする" というのが出来ません。 インポートメニューから "Check out Maven Projects from SCM" を選択しても、以下のようなダイアログになり適切なSCMを選択できません(SCMのプルダウンメニューが空っぽ)。つまり、まだMavenプラグインとSCMとの連携が取れていない状況です。 &image(yb://images/indigo-m2e-scm/indigo-m2e-scm-svn01.jpg, width=600) そこで、上図の右下、"Find more SCM connectors in the m2e Marketplace" をクリック。 これでようやく、m2e用のsubversiveコネクタが一覧の下の方に出てくるので、インストール。 &image(yb://images/indigo-m2e-scm/indigo-m2e-scm-svn02.jpg, width=600) → &image(yb://images/indigo-m2e-scm/indigo-m2e-scm-svn03.jpg, width=600) これで無事、"Check out Maven Projects from SCM" のダイアログで "svn" をSCMとして選択できるようになりました。 &image(yb://images/indigo-m2e-scm/indigo-m2e-scm-svn04.jpg, width=600) * 5. 動作確認 動作確認用のサンプルとして、昔作成したTCP/IPの"Echo"サーバをMaven + Eclipseプロジェクト化してcodereposに上げてありますので、これで連携を確認してみます。 + "Check out Maven Projects from SCM" で次のSVN URLを指定 ++ http://svn.coderepos.org/share/lang/java/echo_samples/act9 + 適当にworkspaceにチェックアウトでき、パッケージエクスプローラ上のプロジェクトアイコンで、左上に"m"のマーク、右下にSubversiveのマークが表示されるまでwktkして待つ。 + Elipseが落ち着いたら、プロジェクトのプロパティ右クリック -> "Run as" -> "Maven build" で、goalsに"package"を設定して実行。 ++ &image(yb://images/indigo-m2e-scm/indigo-m2e-scm-svn05.jpg, width=600) ++ &image(yb://images/indigo-m2e-scm/indigo-m2e-scm-svn06.jpg, width=600) + プロジェクトのプロパティからビルドパスを確認すると、それなりにjarファイルを参照してます。 ++ &image(yb://images/indigo-m2e-scm/indigo-m2e-scm-svn07.jpg, width=600) ++ これら全部をいちいちDLして登録するのが面倒くさい!という場合にMavenは効果的です。もちろん、CUIからビルドできるので作業の自動化と相性が良いというのもあります。 * 6. 参考資料 ''個人のBlog記事を参考にする場合は、必ず使っているEclipseのバージョンを確認してからにしてください。'' 特にm2eclipse関連では、2009年~2010年頃までの記事はほぼ全て、Eclipse 3.7 Indigo では参考にならないと考えて良いです。たった数年、数回のアップデートで、プラグインの名前やインストール方法が変わっています。昔の記事を参考に、昔のやり方でインストールするのは地雷原に何の準備もせず突っ込むような所業です。 2012-03時点(Eclipse 3.7時代)では、sonatypeの資料が一番オススメです。 - Books / Support Sonatype.com -- http://www.sonatype.com/Support/Books しかしこれですらEclipse用の資料は3.6(Helios)時代であり、3.7では下記の差異がありましたので注意が必要です。 + プラグイン名が"m2eclipse" -> "m2e" + MavenとSubversionの連携で、MarketPlaceでは "Maven Integration for Eclipse (Extras)" を探しても見つからず、"Check out Maven Projects from SCM"の"Find more SCM connectors in the m2e Marketplace"からインストールする必要があった。 MavenとEclipseの連携はこのようにめまぐるしく変化していますが、Maven単体では利用者視点ではそれほど大きな変化はありません。 現在のメジャーバージョンはMaven3ですが、Maven2時代のテクニックはほぼ通用します。実際本記事で動作確認に使っている"echo_samples/act9"もMaven2時代に作成しています。 ただ、正直 Apache のMavenサイトのドキュメントは構成が分かりやすいとは言いづらいものがあり(個人的な感覚差はあると思います)、英語が読める方には上述のsonatypeの資料をお薦めします。 日本語ではTECHSCOREの記事がオススメでしょうか。 - Maven | TECHSCORE(テックスコア) -- http://www.techscore.com/tech/Java/ApacheJakarta/Maven/index/ また、本記事では取り扱っていませんがMaven単体で作成したプロジェクトをEclipseに取り込むなどの作業については別途ノウハウが必要ですので、適宜調べてみてください。