Как создать общий процесс ресурсов в Gradle для всех исходных наборов

Для моего build.gradle у меня есть три исходных набора: main, test и integrationTest. Фильтрация ресурсов, которую мне нужно выполнить для всех трех, одинакова, примерно так:

processResources {
   filesMatching(['abc.properties', 'xyz.properties']) {
       expand(version: "1.0",
             buildNumber: "123"
       )
   }
}

Однако вышеупомянутый метод просто фильтрует основной исходный набор, для test и integrationTest мне нужно дважды скопировать и вставить указанный выше метод, вызывая один метод processTestResources, а другой - processIntegrationTestResources.

Как я могу создать единственный метод, который будет вызываться для всех трех исходных наборов?

Gradle за прокси-сервером
Gradle за прокси-сервером
Создайте проект Gradle под сетевым прокси.
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
В этой статье блога мы проведем вас через процесс установки Gradle на Ubuntu 22.04, интеграции его с Jenkins и создания задания Gradle. Мы...
0
0
66
1

Ответы 1

Пока я надеялся на какой-то процесс * Ресурсы, которые будут храниться для всех исходных наборов, я обнаружил, что могу просто выделить общую логику в отдельную функцию, как показано ниже:

def standardProcessResources(obj) {
    obj.filesMatching(['abc.properties', 'xyz.properties']) {
        expand(version: "1.0",
            buildNumber: "123"
        )
    }
}

А затем вызовите этот метод из каждой моей задачи процесса *:

processResources {
    standardProcessResources(processResources)
}

processTestResources {
    standardProcessResources(processTestResources)
}

etc...

Другие вопросы по теме