【发布时间】:2016-02-09 15:13:52
【问题描述】:
我一直在尝试创建一个干净的任务,该任务将删除我的文件树中的一些目录。我不想使用目录的确切路径,因为它可能因风格而异。
这可以通过删除所有文件来实现,但我希望目录树也消失:
task cleanAll(type: Delete, dependsOn: 'clean') {
delete fileTree('src').matching { include '**/obj/**' }
delete fileTree('src').matching { include '**/jniLibs/**' }
delete fileTree('src').matching { include '**/gen/**' }
}
我也试过这个,但它真的不是Delete 任务,只是删除了一些目录:
task cleanAll(type: Delete, dependsOn: 'clean') {
def deleteList = [ 'obj', 'jniLibs' ]
def dirsToDelete = []
def tree = fileTree('src').visit {
def File f = it.file
if ( f.isDirectory() && deleteList.contains(f.name)) {
dirsToDelete << f
}
}
dirsToDelete.each { dir -> dir.delete() }
}
我已经阅读了文档并进行了相当多的搜索,但我觉得我错过了一些简单的东西。
** 编辑 **
只是一个示例文件夹结构
app/src/main
app/src/flavor1/obj
app/src/flavor1/jniLibs
但 flavor1 文件夹并未硬编码到 Gradle 脚本中。这些 Android 风格是通过目录的存在动态添加的。
【问题讨论】: