7

Helios から Eclipse Indigo に切り替えたばかりで、Tomcat 6 で WTP を使用して Maven 対応の Web プロジェクトを実行しようとすると、問題が発生しました。

Tomcat が Maven の依存関係を認識しないという古典的な問題が発生しています。Helios では、次の方法で Maven の依存関係を Deployment Assembly に追加することで回避できました: Project properties -> Deployment Assembly -> Add 'Java Build Path Entries' -> Maven Dependencies

残念ながら、「Java Build Path Entries」のオプションはリストされておらず、「フォルダー」と「プロジェクト」のみがリストされています。これが意図的なものなのか、それとも設定に問題があるのか​​ はわかりません。

外的要因を取り除くために、次の設定を使用しています。

  • Eclipse Indigo の新規インストール (Mac)
  • 新鮮なワークスペース
  • Eclipse マーケットプレイス経由でインストールされた m2e WTP 統合
  • 新しい Maven プロジェクトを作成する
  • いくつかの Maven 依存関係と、それらを使用するためのいくつかのコードを追加します。
  • プロジェクトをファセット形式に変換する
  • 「動的 Web モジュール」ファセットを追加
  • Maven > プロジェクト構成の更新
  • Tomcat 6 サーバーに追加する
  • サーバー上で実行

この時点で、欠落している依存関係に関連する get ClassNotFoundException が表示されます。「mvn war:war」を実行し、アセンブルされた「WEB-INF/lib」ディレクトリをプロジェクトの展開アセンブリに含めると、もちろん、依存関係が正しく取得されます。簡単な修正には問題ありませんが、理想的ではありません。

同様の問題に関連して私が読んだ問題のほとんどは、WTP 統合モジュールの欠落が原因でしたが、それは私にとって問題ではないようです。

私は何か間違ったことをしていますか?

4

4 に答える 4

3

の梱包タイプはですのようnew maven projectですjar。もしそうなら、あなたはそれをに変更してwar試すことができます。

于 2011-08-21T02:06:38.447 に答える
1

プロジェクトを右クリック

  1. [展開アセンブリ] を選択し、[追加] をクリックします

  2. ポップアップ ウィンドウから [Java ビルド パス エントリ] を選択し、[次へ] をクリックします。

  3. Ctrl とマウスを使用して、表示されているすべてのライブラリを選択します

その後、.classpath ファイルに変更が表示されます。

サーバータブでプロジェクトを再度公開します。

于 2013-03-13T10:22:40.990 に答える
1

別の解決策は次のとおりです。修正された .classpath ファイル

    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
           <attributes>
-                   <attribute name="org.eclipse.jst.component.nondependency" value=""/>
+                   <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
            </attributes>
    </classpathentry>
于 2012-04-02T10:28:45.740 に答える