У меня есть библиотека, которая включает в себя создание некоторых ресурсов. У меня есть задача по генерации ресурсов:
val updateWidgetResourcesProvider = tasks.register<Copy>("updateWidgetResources") {
from("../../widget/")
include("*.png")
into("$sharedResLocation/raw")
rename { "asset_$it".replace("@", "_").toLowerCase() }
}
android.libraryVariants.all {
android.sourceSets[this.name].res.srcDirs(sharedResLocation)
mergeResourcesProvider.configure {
dependsOn(updateWidgetResourcesProvider)
}
}
Когда я запускаю :myLibrary:build
, все работает идеально.
У меня также есть приложение, которое использует библиотеку как зависимость
dependencies {
implementation(project(":myLibrary"))
}
Проблема начинается, когда я строю :app:build
. Задача updateWidgetResourcesProvider
просто не выполняется. Как сделать задачу создания ресурса, чтобы она выполнялась, когда я вызываю :app:build
и :myLibrary:build
. Кроме того, почему слияние ресурсов myLibrary
не вызывается, когда оно является частью задачи :app:build
?
Я был бы признателен за любую помощь, если бы я мог прочитать о дереве задач Android Gradle и о том, почему оно отличается, когда я создаю AAR сам по себе или библиотеку как часть APK / Bundle.