Мне нужно обновить 9 ZIP-файлов, а код для этого - около 15 строк. Я бы предпочел не повторять то же самое 15 строк 9 раз в скрипте сборки только с разными именами переменных.Call Zip Task Multiple Times in Gradle
Можно ли вызвать задачу Zip в цикле из другой задачи?
Использование динамических задач, по-видимому, является одним из способов, но для этого требуется, чтобы я дважды перечислял массив задач, которые я вижу, что приводит к ошибке в будущем при добавлении дополнительного элемента.
[war1, war2, war3, war4, war5, war6, war7, war8, war9].each { warName ->
task "task$warName"(type: Zip) {
archiveName = "${warName}.war"
//etc etc
}
}
task all(dependsOn: [taskwar1, taskwar2, taskwar3, taskwar4, taskwar5, taskwar6, taskwar7, taskwar8, taskwar9]) {
}
Есть альтернативы?
На самом деле мои имена не численные, поэтому мне все еще нужен массив, но добавьте параметр dependOn для каждого цикла - это то, что я не знал, что вы могли бы сделать! – opticyclic
С groovy & gradle есть действительно много и много способов достичь желаемой цели. – Opal
Это, безусловно, более чистое и более сжатое решение. Upvoted. –