同じワークスペースで Eclipse にインポートされた 2 つの Maven プロジェクトがあります。両方とも同じ名前とパッケージのクラスを持っていますが、実装が異なり、各プロジェクトの異なる場所にあります。このクラスを呼び出しましょうcom.namespace.Factory
プロジェクト A の test フォルダーの下に Factory があります。つまり、次のようになります。/src/test/java/com/namespace/Factory.java
プロジェクト B には、メイン ソース フォルダーの下に Factory があります。つまり、次のようになります。/src/main/java/com/namespace/Factory.java
両方に依存する Project C もあります。プロジェクト C も、一部の単体テストにプロジェクト B の Factory を使用します。問題は、2 つの Factory クラスを区別できないため、Eclipse が Project C をコンパイルできないことです。コマンドラインですべてのプロジェクトをビルドすると、問題はありません。
Project A Factory クラスはテスト中であるため、Eclipse はそれを無視すると思われるかもしれません。
m2e プラグインを使用しています。私の現在の回避策は、ワークスペース内のプロジェクト C の依存関係を解決しないように m2e をセットアップすることです。これにより、テストが含まれないjarが強制的にダウンロードされます。ただし、これは A または B のいずれかに変更があることを意味します。A または B を手動でインストールし、最新の jar をローカル リポジトリにプッシュし、プロジェクト C の依存関係を更新して最新の jar をプルダウンする必要があります。
プロジェクト A のテスト フォルダーをプロジェクト C のビルド パスから除外して、ワークスペース内のすべてを引き続き解決できるようにする方法はありますか? Eclipse は、Maven プロジェクトの基礎となる何かを壊しているように感じます。