diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt index adf024b9013..069a1e64ac7 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt @@ -464,4 +464,18 @@ class KotlinGradleIT: BaseGradleIT() { assertSuccessful() } } + + @Test + fun testOmittedStdlibVersion() { + val project = Project("kotlinProject", "2.3") + project.setupWorkingDir() + File(project.projectDir, "build.gradle").modify { + it.replace("kotlin-stdlib:\$kotlin_version", "kotlin-stdlib").apply { check(!equals(it)) } + } + + project.build("build") { + assertSuccessful() + assertContains(":compileKotlin", ":compileTestKotlin") + } + } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt index 369aabd3607..271db819364 100755 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt @@ -274,6 +274,7 @@ internal abstract class AbstractKotlinPlugin( project.plugins.apply(JavaPlugin::class.java) configureSourceSetDefaults(project, javaBasePlugin, javaPluginConvention) + configureDefaultVersionsResolutionStrategy(project) } open protected fun configureSourceSetDefaults( @@ -285,6 +286,17 @@ internal abstract class AbstractKotlinPlugin( buildSourceSetProcessor(project, javaBasePlugin, sourceSet, kotlinPluginVersion).run() } } + + private fun configureDefaultVersionsResolutionStrategy(project: Project) { + project.configurations.all { configuration -> + configuration.resolutionStrategy.eachDependency { details -> + val requested = details.requested + if (requested.group == "org.jetbrains.kotlin" && requested.version.isEmpty()) { + details.useVersion(kotlinPluginVersion) + } + } + } + } } internal open class KotlinPlugin(