Java Eclipse在生成路径中找不到现有项目

Java Eclipse在生成路径中找不到现有项目,java,eclipse,build,path,Java,Eclipse,Build,Path,这可能是Eclipse及其构建路径处理的一个特性,尽管迄今为止已经测试了各种各样的变通方法,但仍然无法修复 这个问题涉及几个项目的工作区,每个项目都编译成自己的JAR 通过将相关的项目添加到构建路径(不使用Maven或其他外部工具或插件),可以解决项目之间的依赖关系 Project -> Properties -> Java Build Path -> Projects 在所有这些项目中,有一对夫妇说com.example.p1和com.example.p2拒绝承认第三个简单

这可能是Eclipse及其构建路径处理的一个特性,尽管迄今为止已经测试了各种各样的变通方法,但仍然无法修复

这个问题涉及几个项目的工作区,每个项目都编译成自己的JAR

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

Project -> Properties -> Java Build Path -> Projects
在所有这些项目中,有一对夫妇说com.example.p1和com.example.p2拒绝承认第三个简单的项目,比如com.example.p3,而所有其他项目都拒绝承认。因此,尽管P3被添加到构建路径中,但是P3中的所有相关类都被正确导入,并且通过点击F3可以访问每个此类类的源代码,Eclipse一直抱怨

The import com.example.p3 cannot be resolved

其中com.example.p3.SomeClass是p3类之一

如果我将P3项目的编译JAR放在构建路径中,而不是放在P3项目中,那么问题就消失了。但是,P3中的代码经常更改,不断编译和刷新工作区以获取更改是一种浪费时间的行为,更不用说这种情况无论如何都不应该发生在IDE中,对于在同一Eclipse工作区中使用P3的其他项目也不应该发生

我试过:

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

清理并重新编译所有内容

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

将P3放在Eclipse构建路径顺序和导出列表的顶部

将鼠标悬停在红色下划线的错误编译行上时,可以使用Eclipse的修复项目设置建议。实际上,这个选项提供了向构建路径添加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文件也相同


有什么想法吗?

有什么想法吗。。。使用maven/Ivy/任何类型的依赖关系管理器除外?我猜你可能有一些奇怪的循环依赖性问题,但不能确定。此外,当你说拒绝识别第三个时,它是如何显示的,projectcom.example.p3是不可见的吗?或者它存在,但具有错误的项目性质?P3是否从“导出”选项卡导出其内容?您可以发布所有3个项目中的.classpath文件吗?p3/src框与所有其他项目一样被勾选,以便进行排序和导出。我已经用.classpath文件的结构更新了这个问题,但是没有更多的内容,工作区中的所有这些文件都是相似的。有什么想法。。。使用maven/Ivy/任何类型的依赖关系管理器除外?我猜你可能有一些奇怪的循环依赖性问题,但不能确定。此外,当你说拒绝识别第三个时,它是如何显示的,projectcom.example.p3是不可见的吗?或者它存在,但具有错误的项目性质?P3是否从“导出”选项卡导出其内容?您可以发布所有3个项目中的.classpath文件吗?p3/src框与所有其他项目一样被勾选,以便进行排序和导出。我已经用.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>