Ця стаття буде поновлюватися щоразу, коли буде знайдено щось корисне.

Як встановлювати з дерева директорій у одну цільову

Ось особливість: 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'
}