[英]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.