如何遍历目录树,查找jar文件并将其在gradle构建脚本中的构建阶段之后复制到单个目录

时间:2019-01-28 11:26:58

标签: gradle

我们的项目包含多个模块,每个模块都是独立构建的,并且jar文件位于每个模块的build / libs目录中。为了将它们部署到我们的远程位置,必须将每个模块的/ build / libs目录中的所有jar文件收集(复制)到一个目录中。我创建了一个复制任务,希望from子句可以接受通配符,但是我错了。现在,我将模块手动添加到from子句中,但是显然必须有一个更好的解决方案。作为gradle脚本的新手,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

有多种解决方案可在Gradle中实现,一种简单的方法是使用subprojects闭包以便在复制任务中配置from子句:

// a task which collects all jar files produced by the subprojects
task "collectAllJars"(type: Copy) {
    // destination directory in parent root project
    into file("$buildDir/collectedJars")

    // loop over subprojects and include there produced jars
    subprojects.each { sp ->
        from ("$sp.buildDir/libs"){
            include "*.jar"
        }
    }
}

您将需要在此collectAllJars任务和子项目中的其他build任务之间创建所需的依赖关系。