I am trying to create a task that looks inside a folder and zips all the folders within that folder to some output folder.
Initial state:
Folder1
-> project1
->code //some more files within project1
-> project2
->code
Target state:
Destination
project1.zip
project2.zip
I tried using the below code, but it is zipping all the content within the folder1
task myZip(type: Zip) {
from 'Folder1'
archiveName 'Compress.zip'
destinationDir file('build')
}
I probably might need to use some collections which contains the project1 and project2 info and iteratively zip to the destination folder. Having issues with this approach.
Each Gradle
Zip
task can only create a single Zip file, as you can read here.So, you need to create multiple tasks. Therefore, you can iterate over the subdirectories and create a new
Zip
task for each one of them. The generated tasks can be bundled in a root task viadependsOn
: