EclipseWTPによって作成されたTomcatデプロイメントプロセスで奇妙な動作が発生します。Eclipse 3.7(Indigo)、WTP 3.3、 m2eclipseプラグインなし、Java 1.6、Tomcat5.5を使用しています。
私のアプリケーションは、依存関係として他のいくつかのプロジェクトと、いくつかのサードパーティの依存関係を持つWebアプリケーションです。私のプロジェクトはMavenによって管理されており、このツールを使用してアプリケーションをビルドすると、すべてが正常に機能します。
Eclipseを使用してプロジェクトで作業するには、実行mvn eclipse:clean eclipse:eclipse
してから、プロジェクトをIDEにインポートします。
このWebアプリケーションをTomcat5.5サーバー(このサーバーはEclipseによって管理されています)にデプロイしたいときに問題が発生します。新しいTomcatサーバーを作成し、その中にmy-project-portalアプリケーションをデプロイすると、 my-project-xxxの依存関係と、いくつかのサードパーティの依存関係(定義されている数百のうち約9つ)のみが追加されます。私の同僚のデスクトップの1つ(彼はEclipse 3.5を使用しています)では、サードパーティの依存関係はまったくデプロイされておらず、my-project-xxxJARだけがデプロイされています...
ただし、Webアプリプロジェクトのプロパティ、[Javaビルドパス]> [ライブラリ] 、または[デプロイメントアセンブリ]を見ると、依存関係のリストは正しく完全です。
ノート
古いEclipse(3.3、WTP 3.1を使用)でいくつかのテストを行いましたが、展開の問題は発生していません。ただし、このWTPはまだ「JavaEE Modules Dependencies」を使用していましたが、これは最新のWTPバージョンには当てはまりません。
これまでは、mvn eclipse:eclipse
すべての依存関係(推移的なものを含む)をにコピーするカスタムMavenプラグインを使用していましmy-webapp-project/WebContent/WEB-INF/lib
た。そうすることで、Eclipseはこれらの依存関係のコンテンツを自動的にデプロイし、Tomcatサーバーのすべての依存関係を取得しました。
質問
- 私のプロセスの何が問題になっていますか?
WEB-INF/lib
ディレクトリ内のすべての依存関係を本当にコピーする必要がありますか?- Eclipseを使用してTomcatサーバーにWebアプリケーションをデプロイする場合の通常の手順は何ですか?
実行後のEclipse構成ファイルの抜粋を次に示しますmvn eclipse:eclipse
。
.classpath
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src/main/java"/>
<classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="var" path="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" sourcepath="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/asm/asm/2.2.2/asm-2.2.2.jar" sourcepath="M2_REPO/asm/asm/2.2.2/asm-2.2.2-sources.jar"/>
<classpathentry kind="src" path="/my-project-business"/>
...
<classpathentry kind="output" path="WebContent/WEB-INF/classes"/>
</classpath>
.settings / org.eclipse.wst.common.component
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="my-project-portal">
<property name="context-root" value="my-project-portal"/>
<wb-resource deploy-path="/" source-path="/WebContent"/>
<property name="java-output-path" value="/WebContent/WEB-INF/classes"/>
<dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar">
<dependency-type>uses</dependency-type>
</dependent-module>
...
<dependent-module deploy-path="/WEB-INF/lib" handle="module:/resource/my-project-business/my-project-business">
<dependency-type>uses</dependency-type>
</dependent-module>
<wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/java"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/resources"/>
</wb-module>
</project-modules>