Я получил библиотеку, которая включает в себя создание некоторых ресурсов. У меня есть задача для создания ресурсов:
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.