Лучший способ настроить задачу Gradle для всех проектов из проекта, на котором она запущена?

В корневом каталоге build.gradle мы создаем задачу под всеми проектами, которые должны быть запущены до сборки проекта, выполняющего задачу.

// root build
apply plugin: 'cpp'
all projects {
task.whenTaskAdded {theTask ->
if (theTask.name == "build") {
if (theTask.project.<runPreBuildTask?> == true) {
tasks.create(name: 'preBuildTask' + theTask.name) {
// do some stuff
}
theTask.dependsOn preBuildTask
}
}
}
// other stuff model, toolchains, repositories
}

// some sub project build
// :subProject:subSubProject
// no luck using ext properties
ext.set('subSubProjectDoPreBuild', 'true')
model{
components {
...
}
}

Для справки у нас есть около 800 подпроектов, и их build.gradle автоматически генерируется скриптом, который преобразует существующий файл make. Я понимаю, что нам придется вручную редактировать многие из них, но для этой задачи нам бы хотелось, чтобы корневая сборка внедрила задачу во все подпроекты, но только если они установили какой-либо флаг или что-то еще. Это даст нам гибкость, чтобы изменить задачу в будущем без необходимости редактирования сотен сборок. Пожалуйста, дайте мне знать, если я подхожу к этой задаче неправильно.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]