使用Gradle在每个文件夹

时间:2017-02-03 12:45:05

标签: gradle yarnpkg

我有一个里面有很多目录的文件夹。我想要一个循环脚本(不是递归)并运行

 yarn build 

在他们中间。

我尝试了两种方法(并启动了几种不同的方法),但是没有运气。

task build (description: "Loops through folders and builds"){
    FileTree tree = fileTree(dir: 'admin', include: '*/package.json')

    tree.each {File file -> println file}

}

task yarnBuild (type: Exec){
    executable "bash"
    args "find . -type d -exec ls {} \\;"
}

通过任务构建,我想找到包含package.json的目录(所有这些,真的),但是我不知道如何更改到该目录来做一个"纱线建立"

使用yarnBuild任务我想用unix命令来完成它。但我也无法让它发挥作用。

我更感兴趣的是找到更符合" build"的解决方案。任务,使用实际的Gradle。任何人都可以给我一些指示吗?我怎样才能进入这些目录?我猜测一旦我在正确的文件夹中,我就可以使用Exec来运行"纱线构建"。

谢谢!

1 个答案:

答案 0 :(得分:0)

我可能会为每个目录创建一个任务,并将它们全部连接到apply plugn: 'base' FileTree directories = fileTree(projectDir).matching { include { FileTreeElement el -> return el.directory && el.file.parentFile == projectDir } } directories.files.each { File dir -> // create a task for the directory Task yarnTask = tasks.create("yarn${dir.name}", Exec) { workingDir dir commandLine 'yarn', 'build' // TODO: set these so gradle's up-to-date checks can work inputs.dir = ??? outputs.dir = ??? } // wire the task into the DAG build.dependsOn yarnTask }

{{1}}