Gradle 如何根据子文件夹复制文件和重命名
我正在尝试复制gradle中的一个文件,同时重命名它,文件的新名称应取决于它所在的子文件夹的名称 我的文件结构如下所示,例如:Gradle 如何根据子文件夹复制文件和重命名,gradle,copy,rename,Gradle,Copy,Rename,我正在尝试复制gradle中的一个文件,同时重命名它,文件的新名称应取决于它所在的子文件夹的名称 我的文件结构如下所示,例如: ├── apk │ └── app-envTest-normalBuild-release.apk ├── logs │ └── manifest-merger-envTest-normalBuild-release-report.txt └── mapping └── envTestNormalBuild └── release
├── apk
│ └── app-envTest-normalBuild-release.apk
├── logs
│ └── manifest-merger-envTest-normalBuild-release-report.txt
└── mapping
└── envTestNormalBuild
└── release
├── dump.txt
├── mapping.txt
├── seeds.txt
└── usage.txt
我想复制mapping.txt并重命名它。新名称应该是mapping-envTestNormalBuild.txt,也就是说,应该包括发布它的子目录的名称
有人能告诉我使用gradle copy+重命名功能是否/如何做到这一点吗
我已经看到了,例如,将foo-bar.txt之类的文件复制到foo/bar.txt或类似的目录/路径。您可以尝试,例如:
task clean {
doLast {
project.file('dest').deleteDir()
}
}
task cp(type: Copy) {
dependsOn clean
from 'mapping/envTestNormalBuild/release'
into 'dest'
include 'mapping.txt'
eachFile { fcp ->
fcp.name = "$fcp.file.parentFile.parentFile.name-$fcp.name"
}
}
可以找到一个演示。可能还有一个问题:这将创建文件,包括在其中找到的子目录。。。我可以通过任何方式跳过这些目录,即将重命名的文件放在我在toPath?@fgysin中指定的实际路径中,我猜它可能是通过配置的。你只需要做一点实验;能够使用…解决它。包括…文件。文件部分确保我们不复制任何目录。