[Gradle] Don't use reflection to get packageTask provider

^KT-56904 In Progress
This commit is contained in:
Yahor Berdnikau
2023-12-12 21:19:00 +01:00
committed by Space Team
parent 5e2bf34ff7
commit 1b09ca4001
@@ -22,7 +22,7 @@ import org.gradle.api.logging.Logging
import org.gradle.api.plugins.InvalidPluginException import org.gradle.api.plugins.InvalidPluginException
import org.gradle.api.specs.Spec import org.gradle.api.specs.Spec
import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.TaskProvider
import org.gradle.api.tasks.bundling.AbstractArchiveTask import org.gradle.api.tasks.bundling.Zip
import org.gradle.api.tasks.compile.AbstractCompile import org.gradle.api.tasks.compile.AbstractCompile
import org.gradle.api.tasks.compile.JavaCompile import org.gradle.api.tasks.compile.JavaCompile
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
@@ -310,21 +310,13 @@ internal class AndroidProjectHandler(
@Suppress("TYPEALIAS_EXPANSION_DEPRECATION") variant: DeprecatedAndroidBaseVariant @Suppress("TYPEALIAS_EXPANSION_DEPRECATION") variant: DeprecatedAndroidBaseVariant
): String = variant.buildType.name ): String = variant.buildType.name
// TODO the return type is actually `AbstractArchiveTask | TaskProvider<out AbstractArchiveTask>`; @Suppress("TYPEALIAS_EXPANSION_DEPRECATION")
// change the signature once the Android Gradle plugin versions that don't support task providers are dropped
fun getLibraryOutputTask( fun getLibraryOutputTask(
@Suppress("TYPEALIAS_EXPANSION_DEPRECATION") variant: DeprecatedAndroidBaseVariant variant: DeprecatedAndroidBaseVariant
): Any? { ): TaskProvider<Zip>? = if (variant is DeprecatedAndroidLibraryVariant) {
val getPackageLibraryProvider = variant.javaClass.methods variant.packageLibraryProvider
.find { it.name == "getPackageLibraryProvider" && it.parameterCount == 0 } } else {
null
return if (getPackageLibraryProvider != null) {
@Suppress("UNCHECKED_CAST")
getPackageLibraryProvider(variant) as TaskProvider<out AbstractArchiveTask>
} else {
@Suppress("TYPEALIAS_EXPANSION_DEPRECATION")
(variant as? DeprecatedAndroidLibraryVariant)?.packageLibrary
}
} }
fun setUpDependencyResolution( fun setUpDependencyResolution(