Я пытаюсь скопировать один файл из каталога ресурсов и сделать N его копий с разными именами, используя список переменных, таких как:
def ticketVars = [
[Length: 3, kind: "car"],
[Length: 4, kind: "bike"],
[Length: 5, kind: "walk"],
[Length: 6, kind: "scooter"],
[Length: 7, kind: "unknown"]
]
Учитывая файл src/main/resources/sim/ticketinfo-scenarios.xml.template
, я хочусгенерировать вывод в build / resources / main / sim / like:
build/resources/main/sim/ticketinfo-scenarios-car.xml
build/resources/main/sim/ticketinfo-scenarios-bike.xml
build/resources/main/sim/ticketinfo-scenarios-walk.xml
build/resources/main/sim/ticketinfo-scenarios-scooter.xml
build/resources/main/sim/ticketinfo-scenarios-unknown.xml
Сначала я попытался просто жестко закодировать каждый файл и создать задачу копирования для каждого:
task createBikeFile(type: Copy) {
from "src/main/resources/sim/ticketinfo-scenarios.xml.template"
into "build/resources/main/sim"
rename "ticketinfo-scenarios.xml.template", "ticketinfo-scenarios-bike.xml"
}
и т. д. для каждого kind
, но это не удалось.
Затем я попытался:
def copySimFileTemplate = copySpec {
ticketVariables.each { vars ->
from "src/main/resources/sim/ticketinfo-scenarios.xml.template"
rename {"ticketinfo-scenarios-${vars.kind}.xml" }
}
}
task createSimTestFiles(type: Copy) {
simTestFileList.each { file ->
with copySimFileTemplate
into "build/resources/main/sim"
}
}
Это всегда копировало последнее значение. Я также попытался собрать строки в rename
и повторить их в задаче createSimTestFiles
, но безрезультатно.
Не думаю, что для этого потребуется создать специальную задачу.
Спасибо