我有一个里面有很多目录的文件夹。我想要一个循环脚本(不是递归)并运行
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来运行"纱线构建"。
谢谢!
答案 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}}