我必须编写将要复制文件的gradle任务。文件存储在tests / [Name] /test.txt中,对于我想要创建编号目录/ tested / test00 /,/ tests / test01 /等的每个名称,每个目录中应该是一个文件(test.txt from source文件夹重命名为test00,test01等) 我有代码,但行为很奇怪...... 它创建了正确的目录/ tests / test00等,但每个目录中的所有文件都具有相同的名称... test06。因此目录中的数字是正确的,但在文件名中则不是。
我的代码是:
int copyTaskIterator = 0
int testIterator = 0
...
sources.each { mySource ->
task "myCopyTask$copyTaskIterator"(type: Copy)
nameSuffix = String.format("%02d", testIterator)
fromPath = 'tests/'+mySource+'/test.txt'
toPath = "tested/test"+nameSuffix
tasks."myCopyTask$copyTaskIterator".from fromPath
tasks."myCopyTask$copyTaskIterator".into toPath
tasks."myCopyTask$copyTaskIterator".rename { fileName ->
fileName.replace '.txt', nameSuffix
}
preBuild.dependsOn tasks."myCopyTask$copyTaskIterator"
copyTaskIterator++
testIterator++
}
答案 0 :(得分:0)
问题是,nameSuffix
的评估太迟了。遗憾的是,没有文档说明它是否在执行时执行。
只是尝试使用rename(java.util.regex.Pattern, java.lang.String)
tasks."myCopyTask$copyTaskIterator".rename("\\.txt", nameSuffix)