12

私はこのように構成された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=**/**&amp;excludes=META-INF/MANIFEST.MF">
    <dependency-type>consumes</dependency-type>
</dependent-module>
<dependent-module deploy-path="/"
    handle="module:/overlay/slf/?includes=**/**&amp;excludes=META-INF/MANIFEST.MF">
    <dependency-type>consumes</dependency-type>
</dependent-module>

私が見ることができるように、戦争の依存関係は消費用に設定されていますが、jar の依存関係は使用用に設定されています。

リリースされた m2e-wtp バージョン 0.17 では修正されていないようです。


編集済み (2013-08-30)

今日、私は同じ問題に戻りました。WTP の最新の安定版リリースをそのまま使用して Eclipse ケプラーをインストールしても、この問題は解決しないようです。解決したと思っていたのに、どうやら読み間違いだったようです…

4

3 に答える 3

5

プロジェクト組織の問題ではないと思います。あなたの問題は、この m2e-wtpバグ レポートと非常によく似てい ます。

于 2013-02-13T23:00:04.517 に答える
1

Eclipse Juno と WTP Plugin の問題のようです。

私は同じ問題を抱えていて、この方法で解決しました:

  1. Eclipse ワークスペースとプロジェクト コードをバックアップする
  2. プロジェクトをEclipseから削除します(コンテンツを削除せずに)
  3. コマンド ターミナル (cmd) を開く
  4. mvn eclipse:cleanを実行
  5. mvn eclipse:eclipse -Dwtpversion=2.0を実行します
  6. テキスト エディターで Eclipse クラスパス ファイルを編集します: %PROJECT_PATH%\.classpath
  7. 属性kind="var"を持つすべての行を.classpathファイルから削除します。例えば:

    < classpathentry kind="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"/>

  8. ファイルを保存してエディターを閉じます。
  9. Eclipseで、次をクリックします:ファイル->インポート...-> Maven->既存のmavenプロジェクトをインポートし、プロジェクトを再度インポートします
  10. Maven -> プロジェクトの更新 (必要に応じて)
問題が解決され、maven の依存関係があることを Eclipse プロジェクト プロパティの配置アセンブリで 確認できます。

お役に立てれば。

于 2013-06-18T21:37:23.167 に答える