web-dev-qa-db-ja.com

Maven依存関係はWEB-INF / libに表示されません

私のプロジェクトをMavenベースにするという奇妙な問題があります。 Eclipseで新しいMavenプロジェクトを作成し、動的Webファセットを有効にしました。しかし、Mavenの依存関係はWEB-INF/libディレクトリにコピーされないため、実行時にClassNotFoundExceptionがスローされます。 POMにcopy-dependenciesセクションを追加しようとしましたが、助けにはなりませんでした。

誰か here はこれを正しい方法で解決したように見えましたが、彼は解決策について言及するのを忘れていたと思います::(

64
Suraj Chandran

これは、Eclipseおよびm2Eclipseとは無関係であり、オプションでより良いサポートのために m2e-wtp にする必要があります。また、コピー依存関係は必要ありません。考えられるいくつかの理由を次に示します。

  • mvn packageを呼び出し(または右クリック> maven>パッケージ)、warファイルを取得する必要があります-<packaging>(pom内)はwarでなければなりません
  • 依存関係はデフォルトのスコープである必要があります(providedまたはtestである場合、アーカイブには含まれません)
  • プロジェクトをEclipse内のサーバーで動的Webプロジェクトとして実行している場合は、プロジェクトのプロパティを開き(右クリック>プロパティ)、[Deployment Assembly]を選択する必要があります。そこで「追加」をクリックし、「ビルドパスエントリ」を選択して、「Maven依存関係」を選択します。これは、サーバーディレクトリにMavenの依存関係を送信するようにWTPに指示します。
167
Bozho

最初のインストールMaven Integration For Eclipse WTP(ヘルプ-> Eclipse Marketplace)

次に、Webプロジェクトのpom.xmlに次を追加します。

    <packaging>war</packaging>

その後、プロジェクト、Maven-> Update Projectを右クリックするだけで、Deployment AssemblyにMaven依存関係が自動的に追加されます。

12
Vedran

プロジェクトを右クリック> Maven> Mavenプロジェクトの更新> OKで修正

5
Erik-Jan

プロジェクトのDeployment Assemblyプロパティを確認します。私はいくつかのmvn Eclipse:eclipse生成されたEclipseプロジェクトでは、アセットが間違った場所にデプロイされることがあります。私が覚えていることから、新しいDeployment Assemblyは、Eclipse 3.6(Helios)の以前のバージョンでいくつかの問題を抱えていました。

4
andyb

私はちょうどmavenを行った->更新プロジェクトは私のために働いた。

3
Anil

デプロイメントを調べて、WEB-Inf/libにMaven依存関係がないことを確認したら、それらのMaven依存関係がデプロイメントアセンブリ内にあることを確認することが、選択した回答で言及されているように重要です。

ただし、Eclipseに注意して、Mavenの更新があってもすべてを更新しないようにしてください。クリーンアップ、再構築、再展開してもlibフォルダが表示されない場合は、[サーバー]> [追加と削除]でアプリケーションを削除してサーバー展開に追加し直してください。

これによりシステムが詰まりました。

0
Shaun O'Hagan

コピー依存プラグインを使用したい

this postおよび docs を参照

0
mut1na

プロジェクトを右クリック->展開アセンブリ:Maven依存関係およびその他すべての依存関係があるかどうかを確認します。そうでない場合は、プロジェクトを右クリック-> Maven->ワークスペースの解決を有効にする

(おそらくMaven-> Projectを更新しますが、「Deployment Assembly」をもう一度調べて、何が得られたかを確認します。)これで解決しました(最終的に!)。

0