2

これはおそらく Eclipse の特異性とそのビルド パスの処理の 1 つであり、これまでにあらゆる種類の回避策をテストしたにもかかわらず修正できません。

この問題は、いくつかのプロジェクトのワークスペースに関連しており、それぞれが独自の JAR にコンパイルされます。

プロジェクト間の依存関係は、関連するものをビルド パスに追加することで解決されます (外部ツールやプラグインを使用しないMavenか、他の外部ツールやプラグインを使用しません)。

Project -> Properties -> Java Build Path -> Projects

これらすべてのプロジェクトの中で、他のすべてのプロジェクトがそうであるのに対し、カップル (たとえば、com.example.p1com.example.p2) は 3 番目の (そして単純な) もの (たとえば、com.example.p3) を認識することを拒否します。したがって、P3 はビルド パスに追加されますが、P3 からのすべての関連クラスは適切にインポートされ、そのような各クラスのソース コードは を押すことでアクセスできますがF3、Eclipse は不平を言い続けます。

The import com.example.p3 cannot be resolved

SomeClass cannot be resolved to a type

com.example.p3.SomeClassP3 クラスの 1 つです。

P3 プロジェクトの代わりにコンパイル済みの JAR をビルド パスに配置すると、問題は解消されます。ただし、P3 のコードは頻繁に変更され、ワー​​クスペースをコンパイルして更新し続けて変更を反映させるのは時間の無駄です。言うまでもなく、これは IDE で発生するべきではありません (また、使用している他のプロジェクトでは発生しません)。 P3、まったく同じ Eclipse ワークスペース内)。

私はもう試した:

  • P1、P2、P3 の削除と再追加

  • すべてをクリーンアップして再コンパイルする

  • 他のプロジェクトが P3 JAR をロードするかどうかを確認する

  • P3 を Eclipse ビルド パスの「注文とエクスポート」リストの一番上に置く

  • Eclipse の「Fix project setup」提案を使用します (赤い下線付きエラーのコンパイル行にマウスを合わせると使用可能になります)。実際には、このオプションは P3 またはその JAR のいずれかをビルド パスに追加することを提案しますが、P3 が追加されると問題が再発します。

P3 ソース (JAR ではない) を使用する場合の P1 と P2の.classpathファイルは、他のすべてのプロジェクトと同じで、次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" output="classes" path="src"/>
    <classpathentry kind="var" path="JRE_LIB" sourcepath="JRE_SRC"/>
    <classpathentry kind="lib" path="<JAR_path/JAR_file>"/> 
    ... // Multiple other JAR files
    <classpathentry combineaccessrules="false" kind="src" path="/p3/">
    <classpathentry kind="output" path="bin"/>
</classpath>

ファイルは、ワークスペース内の.projectすべてのプロジェクトでも同じです。

何か案は?

4

0 に答える 0