私のプロジェクトをMavenベースにするという奇妙な問題があります。 Eclipseで新しいMavenプロジェクトを作成し、動的Webファセットを有効にしました。しかし、Mavenの依存関係はWEB-INF/lib
ディレクトリにコピーされないため、実行時にClassNotFoundException
がスローされます。 POMにcopy-dependenciesセクションを追加しようとしましたが、助けにはなりませんでした。
誰か here はこれを正しい方法で解決したように見えましたが、彼は解決策について言及するのを忘れていたと思います::(
これは、Eclipseおよびm2Eclipseとは無関係であり、オプションでより良いサポートのために m2e-wtp にする必要があります。また、コピー依存関係は必要ありません。考えられるいくつかの理由を次に示します。
mvn package
を呼び出し(または右クリック> maven>パッケージ)、warファイルを取得する必要があります-<packaging>
(pom内)はwar
でなければなりませんprovided
またはtest
である場合、アーカイブには含まれません)最初のインストールMaven Integration For Eclipse WTP(ヘルプ-> Eclipse Marketplace)
次に、Webプロジェクトのpom.xmlに次を追加します。
<packaging>war</packaging>
その後、プロジェクト、Maven-> Update Projectを右クリックするだけで、Deployment AssemblyにMaven依存関係が自動的に追加されます。
プロジェクトを右クリック> Maven> Mavenプロジェクトの更新> OKで修正
プロジェクトのDeployment Assemblyプロパティを確認します。私はいくつかのmvn Eclipse:eclipse
生成されたEclipseプロジェクトでは、アセットが間違った場所にデプロイされることがあります。私が覚えていることから、新しいDeployment Assemblyは、Eclipse 3.6(Helios)の以前のバージョンでいくつかの問題を抱えていました。
私はちょうどmavenを行った->更新プロジェクトは私のために働いた。
デプロイメントを調べて、WEB-Inf/libにMaven依存関係がないことを確認したら、それらのMaven依存関係がデプロイメントアセンブリ内にあることを確認することが、選択した回答で言及されているように重要です。
ただし、Eclipseに注意して、Mavenの更新があってもすべてを更新しないようにしてください。クリーンアップ、再構築、再展開してもlibフォルダが表示されない場合は、[サーバー]> [追加と削除]でアプリケーションを削除してサーバー展開に追加し直してください。
これによりシステムが詰まりました。
プロジェクトを右クリック->展開アセンブリ:Maven依存関係およびその他すべての依存関係があるかどうかを確認します。そうでない場合は、プロジェクトを右クリック-> Maven->ワークスペースの解決を有効にする
(おそらくMaven-> Projectを更新しますが、「Deployment Assembly」をもう一度調べて、何が得られたかを確認します。)これで解決しました(最終的に!)。