Gradle 梯度复制任务:复制子目录内容时如何避免创建子目录

Gradle 梯度复制任务:复制子目录内容时如何避免创建子目录,gradle,build.gradle,Gradle,Build.gradle,我试图从包含多个子目录的父目录复制文件。所需的文件树结构如下: MachineLogs/XXXXX/*_CORE.txt MachineLogs/YYYYY/*_CORE.txt 我使用以下代码选择和复制所需文件: from "$localLogsDir/CoreLogsUos1" include '*/*_CORE_*.*' into new File(analysisChainDir, 'CORE') includeEmptyDirs = false

我试图从包含多个子目录的父目录复制文件。所需的文件树结构如下:

MachineLogs/XXXXX/*_CORE.txt

MachineLogs/YYYYY/*_CORE.txt
我使用以下代码选择和复制所需文件:

    from "$localLogsDir/CoreLogsUos1"
    include '*/*_CORE_*.*'
    into new File(analysisChainDir, 'CORE')
    includeEmptyDirs = false
    exclude { details -> details.file.isDirectory()}

上面的代码段正确地复制了核心文件,但也复制了它们所在的目录。我无法命名子目录,因为它们是根据当前日期动态创建的

您可以尝试以下方法(注意正则表达式,它目前不匹配):

你可以找到一个演示

task copyLogs(type: Copy) {
  from fileTree('logs').filter { it.isFile() && it.name.matches('.*_CORE.*') }
  into 'dist'
  includeEmptyDirs = false
}