我需要创建gradle任务来创建zip,在其中我需要包含所有包含文本“ type”:“ customer”的json文件,我如何包括对包含文本的检查? 有办法吗?
task createZip(type: Zip) {
archiveName = "customer.zip"
destinationDir = file(testDir)
from(files(customer))
}
答案 0 :(得分:1)
您可以将FileTree与Gradle / Groovy过滤功能一起使用:
假设您在src/customers
下拥有源客户JSON文件:您可以定义如下任务:
task createZip(type: Zip) {
archiveName = "customer.zip"
destinationDir = buildDir
from fileTree('src/customers').filter { f -> f.text.contains('"type": "customer"')}
}
请注意,这使用Groovy的File.getText()方法将整个文件内容读入内存以匹配"type": "customer"
表达式。如果您要过滤的文件过多或过大,请务必谨慎对待。