あまり良いタイトルではないので、説明してみます。
これは何ヶ月も機能していましたが、今日、なんらかの理由で、Eclipse は兄弟 (ピア プロジェクト) からのインポートを解決できませんが、何も変更されていません (本当に!)。Eclipse または Eclipse プラグインの更新、ソース コードの変更、構成の変更はありません。
私はかなり標準的なプロジェクト構造を持っています:
親プロジェクト --clild_project_a ---- pom.xml --clild_project_b ---- pom.xml -- child_project_c ---- pom.xml -- pom.xml (親用)。
これで、プロジェクト a と b の両方が c のコードに依存します。
pom.xml を投影します。
<parent>
<artifactId>parent_project</artifactId>
<groupId>com.mydomain.ge</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
...
<dependencies>
<dependency>
<groupId>com.mydomain.ge</groupId>
<artifactId>child_project_c</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
そして、親 pom.xml で:
<modules>
<module>child_project_a</module>
<module>child_project_b</module>
<module>child_project_c</module>
</modules>
したがって、Eclipse では、たとえばプロジェクト A のすべてのインポート ステートメントがプロジェクト c からインポートされます。
package com.skillkash.ge.api;
import com.skillkash.ge.dao.AlreadyExistsException;
これは与える:
The import com.skillkash.ge.dao.AlreadyExistsException cannot be resolved.
私は次のことを試しました:
- Maven clean を実行します (すべての子と親で右クリック -> run as -> maven clen を使用)。
- すべてのプロジェクトで Maven の更新依存関係を実行する
- 各プロジェクトでmavenパッケージを実行しています。
- すべてのプロジェクトでm2 maven->「プロジェクト構成の更新」を実行します。
- 日食を再開します。
- コンピューターを再起動します。
注1、Eclipseには、子ごとに1つ、親用に1つずつ、合計4つの個別のプロジェクトがあります。3 つの子プロジェクトも SVN にチェックインされますが、その下に子プロジェクト フォルダーがあるため、親プロジェクトを簡単にチェックインできません。
注2、私はantについてよく知っていますが、Mavenの初心者ですが、今まで問題はありませんでした。たとえば、Maven が依存プロジェクトのソースを使用するように Eclipse に指示しているかどうか、またはローカルの m2 リポジトリに常に jar をコンパイルする必要があり、依存プロジェクトがそれを使用するかどうかはわかりません。
注 3、他のすべての (外部) 依存関係は問題ありません。
注4、「ワークスペースプロジェクトからの依存関係を解決する」がチェックされていることを確認しました。
注 5、Eclipse Java ビルド パス ダイアログで、それが依存しているピア プロジェクトが「ソース」、「プロジェクト」、または「ライブラリ」タブのいずれにも表示されないようです。ライブラリには「maven depedencies」サブツリーがありますが、その下には log4j のような外部 jar があります。