Make dependencies on Android gradle plugin non-transitive
com.android.tools.build:gradle brings about 50 unused transitive dependencies including idea-core and uast, sometimes it breaks IDE features like navigation to declarations and debugging. Inline contents of ReflectionUtil.findMethod to remove dependency on idea-core
This commit is contained in:
@@ -57,14 +57,17 @@ dependencies {
|
||||
runtime project(path: ':kotlin-compiler-runner', configuration: 'runtimeJar')
|
||||
runtime project(':kotlin-reflect')
|
||||
|
||||
agp25CompileOnly 'com.android.tools.build:gradle:3.0.0-alpha1'
|
||||
// com.android.tools.build:gradle has ~50 unneeded transitive dependencies
|
||||
agp25CompileOnly('com.android.tools.build:gradle:3.0.0-alpha1') { transitive = false }
|
||||
agp25CompileOnly('com.android.tools.build:gradle-core:3.0.0-alpha1') { transitive = false }
|
||||
agp25CompileOnly('com.android.tools.build:builder-model:3.0.0-alpha1') { transitive = false }
|
||||
agp25CompileOnly 'org.codehaus.groovy:groovy-all:2.4.12'
|
||||
agp25CompileOnly gradleApi()
|
||||
agp25CompileOnly project(':kotlin-annotation-processing')
|
||||
agp25CompileOnly project(':kotlin-annotation-processing-gradle')
|
||||
|
||||
testCompileOnly project(':compiler')
|
||||
testCompile project (path: ':kotlin-build-common', configuration: 'tests-jar')
|
||||
testCompile project(path: ':kotlin-build-common', configuration: 'tests-jar')
|
||||
testCompile project(':kotlin-android-extensions')
|
||||
testCompile project(':kotlin-compiler-runner')
|
||||
testCompile project(':kotlin-test::kotlin-test-junit')
|
||||
|
||||
+4
-5
@@ -7,9 +7,7 @@ import com.android.builder.model.SourceProvider
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.file.FileCollection
|
||||
import org.gradle.api.tasks.compile.AbstractCompile
|
||||
import com.intellij.util.ReflectionUtil
|
||||
import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin
|
||||
import org.jetbrains.kotlin.gradle.internal.Kapt3KotlinGradleSubplugin
|
||||
import org.jetbrains.kotlin.gradle.internal.KaptTask
|
||||
import org.jetbrains.kotlin.gradle.internal.KaptVariantData
|
||||
import org.jetbrains.kotlin.gradle.plugin.android.AndroidGradleWrapper
|
||||
@@ -169,9 +167,10 @@ class Android25ProjectHandler(kotlinConfigurationTools: KotlinConfigurationTools
|
||||
|
||||
//TODO once the Android plugin reaches its 3.0.0 release, consider compiling against it (remove the reflective call)
|
||||
private val BaseVariant.dataBindingDependencyArtifactsIfSupported: FileCollection?
|
||||
get() = ReflectionUtil.findMethod(
|
||||
this::class.java.methods.toList(),
|
||||
"getDataBindingDependencyArtifacts")?.invoke(this) as? FileCollection
|
||||
get() = this::class.java.methods
|
||||
.find { it.name == "getDataBindingDependencyArtifacts" }
|
||||
?.also { it.isAccessible = true }
|
||||
?.invoke(this) as? FileCollection
|
||||
|
||||
override fun wrapVariantDataForKapt(variantData: BaseVariant): KaptVariantData<BaseVariant> =
|
||||
KaptVariant(variantData)
|
||||
|
||||
Reference in New Issue
Block a user