将文件从 Gradle 父目录加载到 Java 测试

Load file from Gradle parent directory into Java test

我有一个多模块 Gradle 5.4.1 项目。文件夹结构如下:

root
    build.gradle
    settings.gradle
    - conf-folder/config.conf
    - module-a/ (a Java submodule)
    - module-b/ (a Java submodule)

module-a 中,我有一个 JUnit 测试需要读取 conf-folder/config.conf。我已经尝试了 this.getClass().getClassLoader().getResourceAsStream("conf-folder/config.conf");,但它(不出所料)不起作用,因为 conf-folder 不在 module-a 之内,那么如何访问此文件?

您可以编辑模块 a 的 build.gradle 文件

println("rootDir=$rootDir")
sourceSets.test.resources.srcDir file("$rootDir/conf-folder")

并将资源检索为

System.out.printf("res=%s%n", this.getClass().getResource("/config.conf"));