gpt4 book ai didi

gradle - 使用Gradle从多个目录动态创建多个ZIP

转载 作者:行者123 更新时间:2023-12-03 03:40:07 25 4
gpt4 key购买 nike

我的构建中有一个相对复杂的目录结构,我想从中创建多个ZIP文件。结构是这样的:

+ project root
+ -- build.gradle
+ -- + foo
+ -- bar-1
| + -- bar-1.a.json
| + -- bar-1.a.xml
| + -- bar-1.b.json
| + -- bar-1.b.xml
|
+ -- bar-2
| + -- bar-2.a.json
| + -- bar-2.a.xml
| + -- bar-2.b.json
| + -- bar-2.b.xml
|
+ ...
+ -- bar-n
+ -- bar-n.a.json
+ -- bar-n.a.xml
+ -- bar-n.b.json
+ -- bar-n.b.xml

从这个结构中,我想为每个 bar-x目录创建ZIP文件,例如在 foo/bar-1目录中,应在 out/foo/bar-1.zip中创建一个ZIP文件,在 foo/bar-2中应在 out/foo/bar-2.zip中创建一个ZIP文件,依此类推

重要的是,以后可能会出现新目录,所以 无法对名称进行硬编码,Gradle应该在每个构建版本的 foo中列出目录。

有人可以给我示例如何实现这一目标吗?

最佳答案

应该执行以下操作:

task zipAll
file('foo').eachDirMatch(~/bar-.*/) { barDir ->
def taskName = "zip${barDir.name.capitalize()}"
task "$taskName"(type: Zip) {
from barDir
destinationDir file('out/foo/')
baseName barDir.name
}
zipAll.dependsOn taskName
}

关于gradle - 使用Gradle从多个目录动态创建多个ZIP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44588340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com