Gradle 创建目录的 zip 存档的任务

Gradle task to create a zip archive of a directory

我有一个 gradle 任务来创建目录的 zip 存档。 gradle 任务是:

task archiveReports(type: Zip) {
   from '/projects/Reports/*'
   archiveName 'Reports.zip'
}

当我运行命令'gradle archiveReports'时,它显示构建成功。但是,没有创建 zip 文件。

我是不是漏掉了什么?

我想出了一个办法: 它现在对我有用。

task myZip(type: Zip) {
   from 'Reports/'
   include '*'
   include '*/*' //to include contents of a folder present inside Reports directory
   archiveName 'Reports.zip'
   destinationDir(file('/dir1/dir2/dir3/'))
}

Gradle6.7,

task packageDistribution(type: Zip) {
    archiveFileName = "my-distribution.zip"
    destinationDirectory = file("$buildDir/dist")

    from "$buildDir/toArchive"
}

注意:archiveName 已弃用。

使用 Kotlin DSL

tasks.register<Zip>("packageDistribution") {
    archiveFileName.set("my-distribution.zip")
    destinationDirectory.set(layout.buildDirectory.dir("dist"))

    from(layout.buildDirectory.dir("toArchive"))
}

和Groovy

tasks.register('packageDistribution', Zip) {
    archiveFileName = "my-distribution.zip"
    destinationDirectory = layout.buildDirectory.dir('dist')

    from layout.buildDirectory.dir("toArchive")
}

取自official docs