Gradle任务来创建一个zip存档

时间:2018-10-24 08:31:39

标签: gradle build.gradle

我需要创建gradle任务来创建zip,在其中我需要包含所有包含文本“ type”:“ customer”的json文件,我如何包括对包含文本的检查? 有办法吗?

task createZip(type: Zip) {
    archiveName = "customer.zip"
    destinationDir = file(testDir)
    from(files(customer))
}

1 个答案:

答案 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"表达式。如果您要过滤的文件过多或过大,请务必谨慎对待。