如何确定gradle中的源目录优先级?

时间:2016-09-29 09:06:18

标签: java gradle

我在build.gradle

中有以下片段
 main {
        resources.srcDir "src/main/resources-$env"
    }

文件夹

src/main/resources

默认为source。

我希望实现src/main/resources-$env的优先级不仅仅是resources

现在如果我有一个名为config.properties的文件

在我写的一些源代码中:

Properties.class.getClassLoader().getResourceAsStream('config.properties');

路径

src/main/resources/config.properties

具有更高的优先级。

  1. 这个优先保证吗?
  2. 有没有办法改变这种行为?

1 个答案:

答案 0 :(得分:0)

你可能会这样做:

main {
    // important to use '=' so you set rather than add
    resources.srcDirs = ["src/main/resources-$env", "src/main/resources"]
}

或者您可能希望将资源合并到一个文件夹中

task mergeResources(type: Copy) {
    def envResources = fileTree("src/main/resources-$env")
    def defaultResources = fileTree("src/main/resources").minus(envResources)

    from envResources
    from defaultResources
    into "$buildDir/mergedResources"
}

main {
    resources.srcDirs = ["$buildDir/mergedResources"]
}

// wire the task into the DAG
compile.dependsOn mergeResources