根据 Build Type 或者 Flavor 来构建(替代之前 Groovy 版自动生成的函数)
fun DependencyHandlerScope.implementationWithFilter(
flavor: String = "",
buildType: String = "",
dependency: Any
): Dependency? = when {
flavor == "" && buildType == "" -> implementation(dependency)
flavor == "" && buildType != "" -> "${buildType}Implementation"(dependency)
flavor != "" && buildType == "" -> "${flavor}Implementation"(dependency)
flavor != "" && buildType != "" -> "$flavor${buildType[0].toUpperCase() + buildType.substring(1)}Implementation"(dependency)
else -> implementation(dependency)
}
用法:
// 内存泄漏检测
val leakCanaryVersion = "1.6.3"
implementationWithFilter(flavor = "dev", dependency = "com.squareup.leakcanary:leakcanary-android:$leakCanaryVersion")
implementationWithFilter(flavor = "publish", dependency = "com.squareup.leakcanary:leakcanary-android-no-op:$leakCanaryVersion")