Eclipse:Webデプロイメントアセンブリ
問題
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の依存関係を正しく展開するのにも役立ちます。
リファレンス
-
//maven/maven-dependency-libraries-not-deploy-in-eclipse-ide/
-
http://www.eclipse.org/forums/index.php?t=msg&goto=542963&
; -
http://tux2323.blogspot.com/2010/06/review-eclipse-helios-rc4.html