今天,我遇到一个特殊的问题,该问题已经使我在调试器上花费了一段时间。 我有两个项目Project A和ProjectB。 项目A具有多个src目录。
src
├───main
│ └───java
└───generated
└───java
Eclipse都将识别为实际的src目录。两者都将被编译到bin中,如下所示:
bin
├───main
└───generated
项目B对项目A具有项目依赖性。
现在出现了一个奇怪的部分:当我在Project B中从Project A/src/main/java
到Class.forName()
寻找一个类时,就会找到它。当我从Project A/src/generated/java
中寻找一个类时,我得到了ClassNotFound异常。
如果您能指出一种方法让eclipse在两个src目录上创建依赖关系,我将非常高兴。
顺便说一句,以防万一,这很重要:我正在使用Java 9。 这是项目B的.classpath的摘录
<classpathentry kind="src" path="/Project A"/>
感谢您的帮助。
答案 0 :(得分:2)
这看起来像是Eclipse,Gradle或两者的结合的错误。尝试删除运行配置并重新启动应用程序。还确保gradle.build
文件与Eclipse项目同步。如果所有这些都无济于事,您可以使用单个输出文件夹作为解决方法:
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'
}