【发布时间】:2021-12-16 12:31:37
【问题描述】:
一个简化的子模块build.gradle.kts:
plugins {
id("com.android.library")
kotlin("android")
}
android {
androidComponents.beforeVariants { it: com.android.build.api.variant.LibraryVariantBuilder ->
it.enabled = run {
// logic to calculate if
it.productFlavors[0].second == "flavor" && it.buildType == "debug"
}
}
}
是否可以提取函数来计算 buildVariant 的启用状态?
fun calculateIsEnabled(lvb: com.android.build.api.variant.LibraryVariantBuilder): Boolean {
return lvb.productFlavors[0].second == "flavor" && lvb.buildType == "debug"
}
- 我试图在根
build.gradle.kts中声明该函数,但我不知道如何从子模块访问它以及是否可能 - 我试图在
buildSrc模块中声明它,但com.android.build.api.variant.LibraryVariantBuilder在这里未定义,因为插件com.android.library不存在这里,我认为它是不允许的和/或没有意义的
所以,问题是:在哪里声明一个共享函数,该函数使用 gradle 插件中定义的类型并且需要在所有类型为 android 库的子模块中访问?
【问题讨论】:
标签: android gradle android-gradle-plugin gradle-kotlin-dsl