build.gradle - 删除除子树外的所有子目录
问题描述
我是新来的。我正在尝试创建一个 gradle 任务,以删除除其中一部分之外的所有目录。
这是我的情况 src/main/java test/package1 test/package2 com/package3 com/package4 it/package5
这里是我的代码:
task deleteFolders(type: Delete){
group = 'build'
if(currentTask == "deleteFolders"){
def ftree=fileTree(dir: "$javaDir").exclude('test/package2')
ftree.exclude('test/package1')
ftree.visit { FileVisitDetails details ->
delete details.file
}
}
但是这段代码会删除所有内容,包括“排除”中的包。
尝试使用其他代码
task deleteFolders{//(type: Delete)
group = 'build'
if(currentTask == "deleteFolders"){
delete fileTree(dir: "$javaDir").matching {
exclude 'test/package1/**'
exclude 'test/package2/**'
}
}
一切正常,但 com 文件夹仍然是空的(我想删除它)。
那么,有人可以帮我达到这个结果吗?
src/main/java 测试/package1 测试/package2
非常感谢狮子座
解决方案
也许您可以尝试如下方式:
deleteTask = { dealFilePath, destFileName ->
file(dealFilePath).list().each {
f ->
if (!f.contains(destFileName)) {
delete "${dealFilePath}/${f}"
}
}
}
推荐阅读
- r - 按组计算第二高累积值
- webharvest - 使用 Web-Harvest 从表中抓取数据
- .net - .NET WCF Soap 1.1 使用命名空间进行解析
- javascript - Firestore 如何将实时检查与承诺相结合
- elasticsearch - 在 Kibana 内 vega-lite 的查找转换中使用查询
- javascript - 检查数组是否包含值或包含另一个值
- http - `.EXR` 文件的 Mime 类型?
- javascript - 如何使用 GSAP 制作元素的无限位移动画
- r - 如何按组计算平均值和标准差并将其格式化为数据框?
- javascript - 从子目录中查找 json 文件