task tarWithEmptyDirs( type: Tar ) {
archiveName = 'empties.tar'
from( 'build.gradle' ) // include at least one file, else the task does not run because it has "no source"
File empties = new File( temporaryDir, 'emptyDirs' )
empties.deleteDir() // start fresh, we don't want dirs from previous task runs
empties.mkdirs()
['empty1', 'empty2'].each {
new File( empties, it ).mkdir()
}
from( empties )
}
$ tar -tf empties.tar
build.gradle
empty2/
empty1/