我正在尝试在gradle中复制文件并同时重命名,其中文件的新名称应该取决于它所在的子文件夹的名称。
我的文件结构如下所示:
├── 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 + rename功能告诉我这是否可行吗?
我见过reverse is possible,即将foo-bar.txt
这样的文件复制到目录/路径foo/bar.txt
等等。
答案 0 :(得分:3)
您可以尝试例如:
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"
}
}
可以找到演示here。