使用tar任务为Gradle中的每个文件夹创建tar.gz
我有一个项目的文件夹结构如下使用tar任务为Gradle中的每个文件夹创建tar.gz,gradle,groovy,Gradle,Groovy,我有一个项目的文件夹结构如下 blue/folder1 blue/folder2 red/folder3 red/folder4 在Gradle中,我想分别对这些文件夹加上焦油,以便输出如下所示: build/ tar/ blue/ folder1.tar.gz folder2.tar.gz red/ folder3.tar.gz folder4.tar.gz 可能吗?我将如何执行此操作?您知道如何从“maven publi
blue/folder1
blue/folder2
red/folder3
red/folder4
在Gradle中,我想分别对这些文件夹加上焦油,以便输出如下所示:
build/
tar/
blue/
folder1.tar.gz
folder2.tar.gz
red/
folder3.tar.gz
folder4.tar.gz
可能吗?我将如何执行此操作?您知道如何从“maven publish”访问此任务吗?如果我尝试使用工件“tarTask”的传统MavenPublication,它会说
无法为org.gradle.api.internal.artifacts.dsl.DefaultArtifactHandler类型的对象获取未知属性“tarTask”。
要获取.gz,您不需要添加compression=compression.GZIP
作为tar任务的参数之一吗?否则,您只是在用.gz扩展名制作一个tarball。
apply plugin: 'base'
['blue', 'red'].each { colour ->
file(colour).listFiles().each { File folder ->
if (folder.directory) {
Task tarTask = tasks.create(name: "tar${colour.capitalize()}${folder.capitalize()}", type: Tar) {
from folder
destinationDir = "${buildDir}/${colour}"
archiveName = "${folder}.tar"
}
assemble.dependOn tarTask
}
}
}