私は2つのEclipseプロジェクトを持っています:
- jar としてパッケージ化された他のプロジェクトと共有されるコア クラス
- コア クラス jar を使用し、war としてパッケージ化された Tomcat 7 で実行される Web アプリケーション
Maven は、期待どおりに、コア クラスを jar としてコンパイルし、ローカル リポジトリにインストールします。Maven を使用して Tomcat にデプロイすると、すべて問題ありません。
Eclipse の Tomcat サーバーで Webapp を構成すると、Eclipse でコア プロジェクトを閉じている限り、問題なくホット デプロイできます。Tomcat の WEB-INF/lib フォルダーに配置された現在のコア jar ファイルでは、すべて問題ないように見えます。
ただし、コア クラス プロジェクトを Eclipseで開くと、次の 2 つの問題があります。
- コア jar にあるすべてのクラスに対して java.lang.NoClassDefFoundError を取得します
- WEB-INF/lib フォルダー内の jar ファイルが、すべての .java ソース ファイルを含む "core.jar" というディレクトリになっていることに気付きました (つまり、.class ファイルはありません)。
爆発した jar が問題だと思いますが、Eclipse でコア プロジェクトを閉じて、ローカルの Maven リポジトリの jar が lib フォルダーに正しく配置されるのを確認する以外に、この動作を停止する方法が見つかりませんでした。
Eclipse ビルド パスとリソース アセンブリ画面に jar を手動で追加しようとしましたが、他のエラーが発生します。Eclipse は Maven を介して依存関係を登録しているため、関係は既に存在しており、手動で介入する必要はありません。
誰かがこの問題を経験して修正しましたか?