2

这可能是 Eclipse 的特性之一及其对构建路径的处理,尽管到目前为止测试了各种变通方法,但仍无法修复。

该问题与几个项目的工作区有关,每个项目都编译成自己的 JAR。

通过将相关的项目添加到构建路径(不Maven使用或使用其他外部工具或插件)来解决项目之间的依赖关系,通过

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

在所有这些项目中,有几个(比如,com.example.p1com.example.p2)拒绝承认第三个(也是简单的)(比如,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课程之一在哪里。

如果我将其编译后的 JAR 放在构建路径中,而不是 P3 项目,问题就会消失。但是,P3 中的代码经常更改,并且不断编译和刷新工作区以便获取更改是浪费时间,更不用说这不应该在 IDE 中发生(而且对于其他使用P3,在同一个 Eclipse 工作区中)。

我试过了:

  • 删除并再次添加 P1、P2、P3

  • 清理并重新编译所有内容

  • 检查是否有任何其他项目加载了 P3 JAR

  • 将 P3 放在 Eclipse 构建路径“Order and Export”列表的顶部

  • 使用 Eclipse 的“修复项目设置”建议(将鼠标悬停在红色下划线错误编译行上时可用)。实际上,此选项提供了将 P3 或其 JAR 添加到构建路径,但如果添加了 P3,问题会再次出现。

.classpath使用 P3 源(不是 JAR)时,P1 和 P2 中的文件与所有其他项目相同,如下所示:

<?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