Maven 2.x Plug-in for Eclipse のインストール †
- Eclipseの[ヘルプ]-[ソフトウェアの更新]を選びます
- 新規フィーチャーを検索
- m2 pluginサイト(
http://m2eclipse.codehaus.org/ )を登録します
2008-04-20 追記 : URL が変更になっていたようだ → http://m2eclipse.codehaus.org/update/
2009-09-02 追記 : URL が変更になっていたようだ → http://m2eclipse.sonatype.org/update/
2010-02-29 追記 : また URL が変更になっていたようだ → http://m2eclipse.sonatype.org/sites/m2e しかも、以前のバージョンからのアップグレードはできないため一度アンインストールしてからインストールする必要があるようだ・・・でもアンインストールには失敗する Eclipse から入れ直すのが吉?
- インストールするフィーチャーを選んでインストール終了
- [ウィンドウ]-[設定]を選択します
- [Maven 2]で、Local Repository Folder を設定します
- 通常は、${ホームディレクトリ}/.m2/repository になります
- Windowの場合は、C:\Documents and Settings\kagyuu\.m2\repository
M2 Plugin が起動しないときには †
- インストールしたものの、下記のようなエラーが出てM2 Plugin が上手く動かない場合がある
Plug-in org.maven.ide.eclipse was unable to load class
org.maven.ide.eclipse.preferences.Maven2PreferencePage.
- これは、/.m2/repository がないため
- M2 Plugin を使う前に、人間がMavenのローカルレポジトリを作ってもいいけれど、簡単なのはHello Mavenプロジェクトをつくること。
Mavenがプロジェクトを作る際、ユーザのローカルレポジトリがなければ自動的に作られる。
既存のMavenプロジェクトのインポート †
- Eclipse用設定ファイルの生成
C:\apps\helloMaven>mvn eclipse:eclipse
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'eclipse'.
[INFO] artifact org.apache.maven.plugins:maven-eclipse-plugin: checking for upda
tes from central
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-eclips
e-plugin/2.2/maven-eclipse-plugin-2.2.pom
2K downloaded
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-eclips
e-plugin/2.2/maven-eclipse-plugin-2.2.jar
47K downloaded
[INFO] -------------------------------------------------------------------------
...
List of artifacts without a source archive:
o junit:junit:3.8.1
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 15 seconds
[INFO] Finished at: Tue May 30 00:42:18 JST 2006
[INFO] Final Memory: 2M/4M
[INFO] ------------------------------------------------------------------------
C:\apps\helloMaven>
- Eclipseへの取り込み
[ファイル]-[インポート]で、先ほどeclipse向けの設定ファイルを作ったプロジェクトをインポートします
- プロジェクトを右クリックし [Mavne]-[Enable]を選択します
Eclipseからの Maven の実行 †
- [外部ツール] を選択します
- ディレクトリと goal を指定し、[実行]を押します。上手く動かない場合は次の節を参照
- M2 Plugin が、以下のような意味不明なメッセージを出して止まってしまうときがある。test に依存している他の goal ("package"など) でもこのメッセージが出て止まってしまう
java.lang.NoClassDefFoundError:
org/apache/maven/embedder/MavenEmbedderException
Exception in thread "main" ERROR: JDWP Unable to get JNI 1.2 environment,
jvm->GetEnv() return code = -2 ["util.c",L765]
JDWP exit error JVMTI_ERROR_INTERNAL(113):
- どうも M2 Plugin が "test" goal を実行するための plugin を取得できないからのようだ
- 一度、コンソールから mvn test を実行してあげて、必要な plugin を取得する必要がある
kagyuu@SNAIL /cygdrive/c/Documents and Settings/kagyuu/workspace/helloMaven
$ mvn test
[INFO] Scanning for projects...
[INFO] ----------------------------------------------------------------------------
[INFO] Building helloMaven
[INFO] task-segment: [test]
[INFO] ----------------------------------------------------------------------------
[INFO] [resources:resources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [compiler:compile]
[INFO] Nothing to compile - all classes are up to date
[INFO] [resources:testResources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [compiler:testCompile]
Compiling 1 source file to c:\Documents and Settings\kagyuu\workspace\helloMaven\target\test-classes
[INFO] [surefire:test]
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar
164K downloaded
Downloading: http://repo1.maven.org/maven2/org/apache/maven/surefire/surefire-junit/2.0/surefire-junit-2.0.pom
583b downloaded
Downloading: http://repo1.maven.org/maven2/org/apache/maven/surefire/surefire-providers/2.0/surefire-providers-2.0.pom
1K downloaded
Downloading: http://repo1.maven.org/maven2/org/apache/maven/surefire/surefire-junit/2.0/surefire-junit-2.0.jar
11K downloaded
[INFO] Surefire report directory: c:\Documents and Settings\kagyuu\workspace\helloMaven\target\surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.snail.hello.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.062 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 10 seconds
[INFO] Finished at: Sat Feb 10 23:34:37 JST 2007
[INFO] Final Memory: 3M/11M
[INFO] ------------------------------------------------------------------------
- M2 Plugin から "test" goal を実行できました
クラスパスに Maven2 Dependencies ができないときがある †
- 原因は良く分らないが、Eclipse側 の Classpath に、POMファイルで指定したライブラリが反映されないときがある(普通は mnv eclipse:eclipse でうまくいく)
- そういうときには、Eclipseプロジェクトの プロパティで、ビルドバスに Maven2 Dependencies を足してやればいい
Java Maven
|