如何将所有依赖项资源从gradle多项目收集到dist文件夹中

时间:2017-03-09 12:54:52

标签: java scala gradle groovy build

新到gradle这里,我需要从依赖项目的资源文件夹(递归)中移动所有资源,包括当前编译的项目和具有特定名称的concat文件,即

dependencies {
   compile project(':stam-common')
   compile project(':stam-db-common')
   compile project(':stam-reco') 
}

假设我正在编译项目stam-这取决于上面的模块。 我需要将四个项目中的每个项目及其依赖项中的所有文件移动到一个位置并连接所有application.conf文件。

我可以使用一些bash脚本轻松完成它,但需要它是一个gradle任务。 任何的想法 ?

1 个答案:

答案 0 :(得分:0)

取决于application.conf中您可能需要更复杂的内容,但简单的答案就是询问每个项目的文件并将它们合并。

我们可以使用Java的streams api和一些Groovy的File#text来简化concat循环

def allAppConfs = rootProject.subprojects.stream().
        // using `Project#file(String)` the path will be
        // relative to the project's root
        map({ proj -> proj.file('src/main/resources/application.conf').text }).
        collect(Collectors.toList()).
        join('\n')