Задача Gradle для создания zip-архива каталога

У меня сложная задача создать zip-архив каталога. Задача Gradle:

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

Когда я запускаю команду 'gradle archiveReports', она показывает, что сборка прошла успешно. Тем не менее, zip-файл не создается.

Я что-то здесь упускаю?

5 ответов

Решение

Я нашел способ для этого: это работает для меня сейчас.

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/'))
}

С 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")
}

Взято из официальных документов

Добавление к принятому ответу с Gradle 6.7,

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

    from "$buildDir/toArchive"
}

archiveName устарело.

На всякий случай, если кто-нибудь придет сюда, чтобы узнать, как заархивировать ваш проект, например, чтобы использовать его в качестве лямбда-архива AWS, вот вам:

      tasks {
val zipTask by register("createZip", Zip::class) {
    from(processResources)
    from(compileKotlin)
    archiveFileName.set("app.zip")
    into("lib") {
        from(configurations.runtimeClasspath)
    }
}

build {
    dependsOn(zipTask)
}

}

https://docs.gradle.org/current/userguide/working_with_files.html

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

    from "$buildDir/toArchive"
}
Другие вопросы по тегам