У меня есть проект android, состоящий из 10+ библиотечных модулей. Каждый из этих модулей содержит много кода Gradle, общего для всех модулей. Например, я использую задачу генерации Javado c из этого ответа во всех моих файлах build.gradle.
Как бы я go собирался извлечь это создание задачи logi c к функции, помещенной в отдельный файл Gradle, который может быть «включен» каждым модулем? Код одинаков для всех моих модулей, но, очевидно, зависит от варианта и проекта. Можно ли извлечь функцию, которая принимает проект в качестве параметра и возвращает задачу для этого проекта?
Я, вероятно, обхожу это задом наперед, так как я действительно сосу на Gradle, но любые указатели, ведущие ко мне, избегают те же 60 строк кода gradle в 10 различных файлах (lib1 / build.gradle, lib2 / build.gradle, ...) были бы полезны!
На самом деле, это еще больше, в основном вся моя сборка. gradle одинаков для всех проектов, кроме раздела зависимостей - есть блок android
с buildTypes
, compileOptions
et c, применены некоторые плагины (apply plugin: 'com.android.library'
et c) и есть артефакт параметры настройки. На самом деле, только мои зависимости отличаются совсем. Поэтому мне интересно, можно ли полностью извлечь общий файл, например так (очевидно, псевдокод):
<include common.gradle> // includes android block, common tasks, artifact setup etc.
dependencies {
api 'androidx.appcompat:appcompat:1.1.0'
api 'com.google.code.gson:gson:2.8.5'
...
}