Java Gradle项目资源未添加到类路径

Java Gradle项目资源未添加到类路径,java,gradle,gradle-eclipse,Java,Gradle,Gradle Eclipse,我的任务是为现有项目的自动化集成测试编写一些基类,但我遇到了项目依赖性方面的障碍 抽象的项目布局如下所示: project / MainProject Plugins / ... ConfigurationProject IntegrationTestProject IntegrationTestProject依赖于ConfigurationProject,后者具有以下布局: ConfigurationProject/ PluginCon

我的任务是为现有项目的自动化集成测试编写一些基类,但我遇到了项目依赖性方面的障碍

抽象的项目布局如下所示:

project /
    MainProject
    Plugins /
        ...
    ConfigurationProject
    IntegrationTestProject
IntegrationTestProject依赖于ConfigurationProject,后者具有以下布局:

ConfigurationProject/
    PluginConfigs/
        <plugin configuration files>
    <main configuration files>
这看起来还不错,因为eclipse将root中的所有文件都显示为项目资源的一部分,并按照预期将所有文件打包

但是,当我实际运行集成测试时,ConfigurationProject资源似乎不在类路径中,因为它无法提取配置信息,这进一步证实了此代码段的输出中缺少ConfigurationProject:

public void classpathScanner() {
    ClassLoader c=getClass().getClassLoader();
    System.out.println("c="+c);
    URLClassLoader u=(URLClassLoader)c;
    URL[] urls=u.getURLs();
    for (URL i : urls) {
        System.out.println("url: "+i);
    }
}
ConfigurationProject使用IntegrationTestProjects gradle.build包含在IntegrationTestProject中

dependencies {
    compile project(':ConfigurationProject')
}

我只是在将项目根目录作为资源添加时才注意到这个问题,将项目的子文件夹添加到SourceSet似乎很好,并且在这个项目的其他地方使用。将配置文件移动到子文件夹是我考虑过的一个选项,如果找不到其他解决方案,我将执行该选项,但我想看看是否有不涉及此操作过程的选项。

这个问题的答案基本上是,不要将project root设为资源文件夹,Gradle讨厌它,即使它没有,无论如何,这是一种糟糕的形式。我通过将配置文件放在一个更合理的资源路径上解决了这个问题。

不应将项目根目录添加为资源文件夹。就我个人而言,我坚持使用标准的src/main/resources
dependencies {
    compile project(':ConfigurationProject')
}