Для моего build.gradle у меня есть три исходных набора: main, test и integrationTest. Фильтрация ресурсов, которую мне нужно выполнить для всех трех, одинакова, примерно так:
processResources {
filesMatching(['abc.properties', 'xyz.properties']) {
expand(version: "1.0",
buildNumber: "123"
)
}
}
Однако вышеупомянутый метод просто фильтрует основной исходный набор, для test и integrationTest мне нужно дважды скопировать и вставить указанный выше метод, вызывая один метод processTestResources, а другой - processIntegrationTestResources.
Как я могу создать единственный метод, который будет вызываться для всех трех исходных наборов?


Пока я надеялся на какой-то процесс * Ресурсы, которые будут храниться для всех исходных наборов, я обнаружил, что могу просто выделить общую логику в отдельную функцию, как показано ниже:
def standardProcessResources(obj) {
obj.filesMatching(['abc.properties', 'xyz.properties']) {
expand(version: "1.0",
buildNumber: "123"
)
}
}
А затем вызовите этот метод из каждой моей задачи процесса *:
processResources {
standardProcessResources(processResources)
}
processTestResources {
standardProcessResources(processTestResources)
}
etc...