私はそれがあなたのプロジェクト組織の問題ではないと思います。あなたの問題はこのm2e-wtpと非常によく似ています バグレポート.
WTP - M2Eは推移的な依存関係を展開していません
-
07-03-2022 - |
質問
このように構成されているWebアプリケーションがあります。
A.jar - > B.war - > C.war.
私はEclipse JunoとTheを使っています 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.A.JARが含まれているため、MAVEN GESILAT WARを手動で展開する場合は、魅力のように機能します。 Web-INF / LIB. 。しかし私の問題は私がlelしたときに来ます M2E-WTP デプロイを実行します。私はここでどこかに読んだように、私はそれをPOMとして含めてみましたが、私は同じ結果を持っています。
<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)
今日私は同じ問題に戻った。私にはEclipse Keplerがインストールされています WTPの最新の安定リリース 箱から出して、この問題は持続しているようです。私はそれが解決されたと思ったが、私はそれを傷つけた
解決
他のヒント
それはEclipse JunoとWTPプラグインの問題のようです。
私は同じ問題を抱えていました、そして私はこのように解決しました:
- Eclipseのワークスペースとプロジェクトコードをバックアップします
- Eclipseからプロジェクトを削除します(コンテンツを削除せずに)
- コマンド端末を開く(CMD)
- 走る MVN Eclipse:クリーン
- 走る MVN Eclipse:Eclipse -DWTPVersion = 2.0
- Eclipseクラスパスファイルをテキストエディタで編集します。%project_path%。クラスパス
- 属性を持つすべての行を削除します kind = "var" あなたから .classpath. ファイル。例えば:
<classpathEntry exis = "var" path = "m2_repo / javax / servlet / servlet-api / 2.5 / servlet-api-2.5.jar" SourcePath = "M2_Repo / javax / servlet / servlet-api / 2.5 / servlet-api-2.5 -sources.jar "/>
- ファイルを保存してエディタを閉じます。
- Eclipseで、:ファイル - >インポート...> Maven->既存のMavenプロジェクトをインポートし、プロジェクトを再度インポートします。
- Maven - >アップデートプロジェクト(必要な場合)
お役に立てれば。
私もこの問題を抱えています。私は醜い回避策を持っています:
置く すべて 元の戦争の依存関係(タイプJAR)で、元の戦争とオーバーレイ戦争の両方を作ります。その例のために:
A.jar - > B.war - > C.war.
becomes
A.jar - > B依存関係.jar. (作成されたB依存関係と呼ばれる新しいモジュール)
B-DESENGENCIES.JAR - > B.War.
B-Dependencies.jar - > C.war.
それはTomcatに固有のものではないことに注意してください。私はJBossを使っています。