Задача Gradle для создания zip-архива - PullRequest
0 голосов
/ 24 октября 2018

Мне нужно создать задачу gradle для создания zip-файла, куда мне нужно включить все json-файлы, содержащие текст «type»: «customer», как я могу включить проверку на наличие текста?Есть ли способ, которым я могу это сделать:

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

1 Ответ

0 голосов
/ 24 октября 2018

Вы можете использовать FileTree вместе с возможностями фильтрации Gradle / Groovy:

Допустим, у вас есть исходные файлы JSON клиента в src/customers: вы можете определить задачу следующим образом:

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".Будьте осторожны с выступлениями, если у вас есть много или большие файлы для фильтрации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...