私はこのように構成されたWebアプリケーションを持っています:
A.jar -> B.war -> C.war
私は Eclipse Juno を使用しており、WTP のバージョンは 1.1です。A.jar は、B.war に組み込まれているワークスペース ユーティリティ プロジェクトです。B.war は、オーバーレイとして C.war に含まれる戦争プロジェクトです。それが私がやっている方法です:
<dependency>
<groupId>com.projects</groupId>
<artifactId>B</artifactId>
<version>1.0-SNAPSHOT</version>
<type>war</type>
<scope>runtime</scope>
</dependency>
その後、C プロジェクトを Tomcat サーバーにデプロイします。A.jar はWEB-INF/libに含まれているため、Maven で生成された war を Tomcat に手動でデプロイすると、魅力的に機能します。ただし、m2e-wtpにデプロイを実行させると問題が発生します。これは、オーバーレイを適切に実行しているが、推移的な依存関係が含まれていないためです。このあたりのどこかで読んだので、ポンとして含めてみましたが、同じ結果になりました。
<dependency>
<groupId>com.projects</groupId>
<artifactId>B</artifactId>
<version>1.0-SNAPSHOT</version>
<type>war</type>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.projects</groupId>
<artifactId>B</artifactId>
<version>1.0-SNAPSHOT</version>
<type>pom</type>
</dependency>
m2e (1.2) とm2e-wtp (0.16)の最新バージョンを使用しており、プロジェクトを Maven 構成で更新しています。
それは m2e-wtp の問題ですか、それとも単にプロジェクトを別の方法で整理する必要がありますか?
編集済み
m2e-wtp 構成が Eclipse のproject./settings/org.eclipse.wst.common.componentファイルに格納されていることに気付きました。それが私の戦争の様子です:
<dependent-module deploy-path="/"
handle="module:/overlay/prj/B?includes=**/**&excludes=META-INF/MANIFEST.MF">
<dependency-type>consumes</dependency-type>
</dependent-module>
<dependent-module deploy-path="/"
handle="module:/overlay/slf/?includes=**/**&excludes=META-INF/MANIFEST.MF">
<dependency-type>consumes</dependency-type>
</dependent-module>
私が見ることができるように、戦争の依存関係は消費用に設定されていますが、jar の依存関係は使用用に設定されています。
リリースされた m2e-wtp バージョン 0.17 では修正されていないようです。
編集済み (2013-08-30)
今日、私は同じ問題に戻りました。WTP の最新の安定版リリースをそのまま使用して Eclipse ケプラーをインストールしても、この問題は解決しないようです。解決したと思っていたのに、どうやら読み間違いだったようです…