日記/2012/03/10/Eclipse3.7(Indigo)でMavenとSubversion環境セットアップメモ ではEclipseにMavenプラグインを導入し、既存のEclipse用Mavenプロジェクトをインポートするところまでを解説しました。
今回は、素のMavenプロジェクトをEclipseのプロジェクトに取り込む方法をメモ。ここで言う「素のMavenプロジェクト」というのは、".project"や".classpath"ファイル, ".settings"ディレクトリなどが作成されていない、Eclipseプロジェクトとは認識されないファイルセットを指します。
ということで、今回は myart3 という以下の構造のMavenプロジェクトを「Eclipse化」してみます。
/work/tmp/mvntest/myart3/ pom.xml src/main/java/foo/bar/App.java src/test/java/foo/bar/AppTest.java
※今回は "Maven Eclipse Plugin" ( http://maven.apache.org/plugins/maven-eclipse-plugin/ ) は取り上げません。また、マルチモジュール化されたMavenプロジェクトの取り込みについてはまたの機会に。
まずEclipseのインポートメニューからMavenの "Existing Maven Projects" を選択します。
続いてpom.xmlのあるディレクトリを"Root Directory"として選択すると、自動的にインポートするプロジェクトがリストアップされます。
インポートに完了後、Eclipseのナビゲータビューで確認すると".project", ".classpath", ".settings" が作成されています。
".classpath"を覗いてみると、m2e専用のコンテナが設定されていることを確認できます:
$ cat .classpath <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" output="target/classes" path="src/main/java"/> <classpathentry kind="src" output="target/test-classes" path="src/test/java"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/> <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ <classpathentry kind="output" path="target/classes"/> </classpath>
SCM上に素のMavenプロジェクトが登録されている状態で、それをチェックアウト。
今回はローカルのSubversionリポジトリで以下を用意し、その直下にmyart3をコミットしています。
file:///work/SVNREPOS/test1
まずはインポートメニューからMavenの"Check out Maven Projects from SCM"を選択します。ちなみにこのメニューは、すでにEclipseプロジェクト化されたMavenプロジェクトをSCMからチェックアウトする場合も利用できます。
SCM URLでSubversionのローカルリポジトリを指定しています:
locationなどカスタマイズできます。何も入力しないデフォルトのままインポートすると、Eclipseのナビゲーションビューで以下のように".project"などのファイル・ディレクトリが作成されたことが確認されました。
一方で、以下のように"maven"で始まる適当なディレクトリにチェックアウトされてしまいましたので注意が必要です。
予めsvnコマンドやTortoiseSVN等でローカルにチェックアウトしておきます。
今回は以下のディレクトリにチェックアウトしました:
$ pwd /work/tmp/mvntest/test1/myart3 $ svn info Path: . URL: file:///work/SVNREPOS/test1/myart3 Repository Root: file:///work/SVNREPOS/test1 ...
EclipseのインポートメニューからMavenの "Existing Maven Projects" を選択し、チェックアウトした素のMavenプロジェクトのディレクトリを "Root Directory" に設定します。以降は 1. の時と同じです。
EclipseのSubversiveプラグインの方で ".svn" を認識してくれますので、 "2." と同様にSubversionの機能も利用できます。
この手順であれば、"2."のような"maven...."の中にチェックアウトされるようなことも無いので、こちらを個人的にはお勧めします。
コメント