diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt index 7db95600cbd..924863d3103 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt @@ -324,6 +324,19 @@ open class KotlinAndroid32GradleIT : KotlinAndroid3GradleIT() { } } + @Test + fun testLintInAndroidProjectsDependingOnMppWithoutAndroid() = with(Project("AndroidProject")) { + embedProject(Project("sample-lib", directoryPrefix = "new-mpp-lib-and-app")) + gradleBuildScript("Lib").appendText( + "\ndependencies { implementation(project(':sample-lib')) }" + ) + val lintTask = ":Lib:lintFlavor1Debug" + build(lintTask) { + assertSuccessful() + assertTasksExecuted(lintTask) // Check that the lint task ran successfully, KT-27170 + } + } + @Test fun testKaptUsingApOptionProvidersAsNestedInputOutput() = with(Project("AndroidProject")) { setupWorkingDir() diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTargetConfigurator.kt index c14146e26d5..a2752ef48e0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTargetConfigurator.kt @@ -20,6 +20,26 @@ class KotlinJvmTargetConfigurator(kotlinPluginVersion: String) : KotlinOnlyTargetConfigurator(true, true, kotlinPluginVersion), KotlinTargetWithTestsConfigurator { + override fun configurePlatformSpecificModel(target: KotlinJvmTarget) { + super.configurePlatformSpecificModel(target) + super.configurePlatformSpecificModel(target) + + // Create the configuration under the name 'compileClasspath', as Android lint tasks want it, KT-27170 + target.project.whenEvaluated { + if (configurations.findByName("compileClasspath") == null) { + configurations.create("compileClasspath").apply { + isCanBeResolved = false + isCanBeConsumed = false + extendsFrom( + target.project.configurations.getByName( + target.compilations.getByName(KotlinCompilation.MAIN_COMPILATION_NAME).compileDependencyConfigurationName + ) + ) + } + } + } + } + override val testRunClass: Class get() = KotlinJvmTestRun::class.java