Java 将多个gradle zip任务合并为一个任务
我有一个gradle任务,将Java 将多个gradle zip任务合并为一个任务,java,gradle,groovy,zip,devops,Java,Gradle,Groovy,Zip,Devops,我有一个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"))
.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
考虑以下(示例):
这将动态查找名称与gradleTask*
匹配的Zip
类型的任务,并将其添加到compileJava.finalizedBy
的任务列表中
没有zipAll
任务,但是gradlecompilejava
将按需要工作
tasks.withType(Zip).all { task ->
def taskName = task.name
if (taskName ==~ /gradleTask.*/) {
println "TRACER adding dependency on ${taskName}"
compileJava.finalizedBy taskName
}
}