Eclipse 项目对多个 src 目录的依赖

Eclipse Projectdependency on multiple src directories

今天我遇到了一个特殊问题,我在调试器上已经花了一段时间。 我有两个项目 Project A 和 Project B。 项目 A 有多个 src 目录。

src
├───main
│   └───java
└───generated
    └───java

两者都被 eclipse 识别为实际的 src 目录。两者都将编译为 bin,如下所示:

bin
├───main
└───generated

项目 B 对项目 A 具有项目依赖性。 现在奇怪的部分来了:当我在项目 B 中通过 Class.forName()Project A/src/main/java 寻找 class 时,它会被发现。当我从 Project A/src/generated/java 寻找 class 时,我得到一个 ClassNotFound 异常。

如果您能指出一种方法告诉 eclipse 在两个 src 目录上创建依赖项,我将非常高兴。

顺便说一句,以防万一它很重要:我正在使用 java 9。 这是项目 B

的 .classpath 的摘录
<classpathentry kind="src" path="/Project A"/>

感谢您的帮助。

这看起来像是 Eclipse 的错误,Gradle 或两者兼而有之。尝试删除 运行 配置并重新启动应用程序。还要确保 gradle.build 文件与 Eclipse 项目同步。如果所有这些都没有帮助,您可以使用单个输出文件夹作为解决方法:

  • 项目 > 属性中手动:Java构建路径,在选项卡:
    1. 取消选中复选框允许源文件夹的输出文件夹
    2. 默认输出文件夹字段中输入bin/main
  • 或通过以下 gradle.build 片段:
apply plugin: 'eclipse'
eclipse.classpath.file.whenMerged {
    entries.find { it.path == 'src/main/java' }.output = 'bin/main'
    entries.find { it.path == 'src/generated/java' }.output = 'bin/main'
}