Прийоми роботи в Gradle
Ця стаття буде поновлюватися щоразу, коли буде знайдено щось корисне.
Як встановлювати з дерева директорій у одну цільову
Ось особливість: Copy
, Sync
, Zip
та інші зберігають структуру директорій,
коли роблять свою роботу. Якщо потрібно скопіювати файли з піддиректорій в одну
директорію, потрібно зазначити колекцію файлів самостійно змінити шлях до
файлів з допомогою eachFile
:
task deploy(type: Sync) {
from 'src'
into 'dst'
eachFile { desc ->
desc.path = desc.path.replaceAll('regex', 'subst')
}
}
// Так може спрацювати для статичних файлів, але не для згенерованих.
// Бо fileTree() обчислюється раніше, ніж виконується задача.
task deploy_flat(type: Sync) {
from(fileTree(dir: 'src').files)
into 'dst_flat'
}