多个src目录上的Eclipse Projectdependency

时间:2018-06-20 15:09:57

标签: eclipse gradle java-9 eclipse-neon

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

src
├───main
│   └───java
└───generated
    └───java
Eclipse都将

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

bin
├───main
└───generated

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

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

顺便说一句,以防万一,这很重要:我正在使用Java 9。 这是项目B的.classpath的摘录

<classpathentry kind="src" path="/Project A"/>

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

这看起来像是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'
}