問題

Eclipse 3.5またはそれ以前のバージョンでは、Maven依存関係を正しい ”

/WEB-INF/lib

“フォルダにデプロイするために、 “Java EE Module Dependencies”を介して依存関係を設定し、更新された ”

.classpath

“ファイルは次のようになります:

__File: “.classpath”、Java EEモジュールの依存関係…​

...

<classpathentry kind = "var" path = "M2__REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar"
   sourcepath = "M2__REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1-sources.jar">
   <属性>
     <attribute name = "org.eclipse.jst.component.dependency" value = "/WEB-INF/lib"/>
   </attributes>
</classpathentry>
...

Eclipse 3.6以降、「Java EE Module Dependencies」は「Web Deployment Assembly」に置き換えられましたが、「Referenced Projects Classpath Entries」で同じことができますが、「

.classpath

」ファイルは次のように更新されます:

__File:Web展開アセンブリによる “.classpath” …​

...

<classpathentry kind = "var" path = "M2__REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar"
   sourcepath = "M2__REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1-sources.jar">
   <属性>
     <attribute name = "org.eclipse.jst.component.dependency" value = "../"/>
   </attributes>
</classpathentry>
...

悲しいことに、デフォルトの

(value = “../”)

はすべてのMavenの依存関係を展開できませんでした。

解決策

大きな問題ではなく、

(value = “../”)

から

(value = “/WEB-INF/lib”)

を手動で変更できますが、Mavenビルドを実行するたびにオーバーライドされます。心配しないでください、まだ2つの解決策があります:

1. WTPのサポート

代わりに、MavenがWTP 2.0をサポートするように、 “Referenced Projects Classpath Entries”設定を無視してください

mvn eclipse:eclipse -Dwtpversion=2.0



org.eclipse.wst.common.component”という名前の新しいファイルが生成され、 ”

settings ** “フォルダの下にこのファイルの一部が表示されます:


File:WTP

による “org.eclipse.wst.common.component”

...

<依存モジュールarchiveName = "jsp-api-2.1.jar" deploy-path = "/WEB-INF/lib"
  handle = "モジュール:/classpath/var/M2__REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar">
  <dependency-type>は</dependency-type>を使用します。
</dependent-module>
...

WTPサポートでは、

/WEB-INF/lib

フォルダにMaven依存関係を正しく展開するのに役立ちます。

2. m2eclipseプラグイン

MavenをEclipse IDEに統合するためのEclipseプラグインであるhttp://m2eclipse.sonatype.org/[m2eclipse]をインストールします。インストール後、プロジェクトフォルダを右クリックし、 ”

Maven

” – > ”

Project Configuration

を更新”を選択すると、それに応じて ”

.classpath

“ファイルが更新されます。


File:m2eclipse

による “.classpath”

...

<classpathentry kind = "con" path = "org.maven.ide.eclipse.MAVEN2__CLASSPATH__CONTAINER">
  <属性>
    <attribute name = "org.eclipse.jst.component.dependency" value = "/WEB-INF/lib"/>
  </attributes>
</classpathentry>
...

Mavenの依存関係を正しく展開するのにも役立ちます。