2012年10月5日金曜日

Eclipse に インポート時に Unsupported IClasspathEntry が出る

Eclipse + m2e 環境で プロジェクトをインポートすると

An internal error occurred during: "Importing Maven projects".
Unsupported IClasspathEntry kind=4

となることがある。

自分の場合は pom.xml から mvn eclipse:eclipse で生成したScala プロジェクトを、 「 Existing Maven Projects 」で import したときに発生した。



原因は、mvn eclipse:eclipse で 生成した .classpath ファイル。

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
  <classpathentry kind="src" path="src/test/scala" output="target/test-classes" including="**/*.java"/>
  <classpathentry kind="src" path="src/main/scala" including="**/*.java"/>
  <classpathentry kind="output" path="target/classes"/>
  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
  <classpathentry kind="var" path="M2_REPO/org/scala-lang/scala-library/2.9.2/scala-library-2.9.2.jar"/>
  <classpathentry kind="var" path="M2_REPO/junit/junit/4.10/junit-4.10.jar"/>
  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
</classpath>

「 kind="var" 」という classpathentry がいくつか存在している。
環境変数を使うタイプの classpathentry なのだが、これを m2e が解釈できないのが原因。



回避策は、 mvn eclipse:eclipse を使わないこと。

いったん Eclipse から削除して、.project と .classpath ファイルを削除後、 再度、「 Existing Maven Projects 」 をすればインポートできる。

maven の maven-eclipse プラグイン と m2e は相性が悪いらしい。
m2e では 直接 pom.xml から .project と .classpath を生成するので、 import 前に
「mvn eclipse:eclipse」
で プロジェクトファイルを生成しておく必要はない。

3 件のコメント:

  1. 助かりました!感謝です!

    返信削除
  2. 今、まさに救助されました。ありがとう!

    返信削除
  3. お役にたてたみたいで何よりです。

    返信削除