簡體   English   中英

將多個 gradle zip 任務合並為一個

[英]Combining multiple gradle zip tasks into a single one

我有一個 gradle 任務將.yaml文件壓縮到一個 zip 文件夾中,如下所示:

task gradleTask1(type: Zip) {
    from 'src/test/resources/source_one/'
    include '**/*'
    archiveName 'file-collect.zip'
    destinationDir(file("${buildDir}/resources/test/staging/target_one"))
}

同樣,我還有其他看起來相同的任務,但源目錄和目標目錄不同。

task gradleTask2(type: Zip) {
    from 'src/test/resources/source_two/'
    include '**/*'
    archiveName 'file-collect.zip'
    destinationDir(file("${buildDir}/resources/test/staging/target_two"))
}

task gradleTask3(type: Zip) {
    from 'src/test/resources/source_three/'
    include '**/*'
    archiveName 'file-collect.zip'
    destinationDir(file("${buildDir}/resources/test/staging/target_three"))
}

主要問題是我每次添加新的 zip 任務時都必須添加依賴項,如下所示:

compileJava.finalizedBy gradleTask1

compileJava.finalizedBy gradleTask2

compileJava.finalizedBy gradleTask3

有什么辦法可以動態地實現這些步驟嗎? 我可以有一個 zip 任務(類似於zipAll ),最后任務依賴可以是

compileJava.finalizedBy zipAll

考慮以下( 此處的示例):

tasks.withType(Zip).all { task ->
    def taskName = task.name

    if (taskName ==~ /gradleTask.*/) {
        println "TRACER adding dependency on ${taskName}"
        compileJava.finalizedBy taskName
    }
}

這將動態查找名稱與gradleTask*匹配的Zip類型的任務,並將其添加到compileJava.finalizedBy的任務列表中。

沒有zipAll任務,但gradle compileJava將按需要工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM