Как я могу скопировать один файл, но переименовать его несколько раз в одном выходном каталоге - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь скопировать один файл из каталога ресурсов и сделать 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, но безрезультатно.

Не думаю, что для этого потребуется создать специальную задачу.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...