diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/StdlibAlignmentIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/StdlibAlignmentIT.kt index adbd56b505b..fb6ebc28da5 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/StdlibAlignmentIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/StdlibAlignmentIT.kt @@ -15,6 +15,8 @@ import kotlin.io.path.appendText @DisplayName("Stdlib 1.8+ version alignment") class StdlibAlignmentIT : KGPBaseTest() { + val constrainedAlignmentVersion = "1.8.0" + @AndroidGradlePluginTests @DisplayName("stdlib-jdk7, stdlib-jdk8 versions aligned with stdlib:1.8+") @GradleAndroidTest @@ -107,7 +109,7 @@ class StdlibAlignmentIT : KGPBaseTest() { """ |\--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2 | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.2 - | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.30 -> ${buildOptions.kotlinVersion} + | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.30 -> ${constrainedAlignmentVersion} """.trimMargin().normalizeLineEndings() ) } @@ -118,25 +120,30 @@ class StdlibAlignmentIT : KGPBaseTest() { @DisplayName("alignment in Kotlin DSL") @GradleTest fun stdlibJdkAlignmentKotlinDsl(gradleVersion: GradleVersion) { - project("sourceSetsKotlinDsl", gradleVersion) { - buildGradleKts.appendText( - """ - | - |dependencies { - | implementation(kotlin("stdlib")) - | implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2") - |} - """.trimMargin() - ) - - build("dependencies", "--configuration", "compileClasspath") { - assertOutputContains( + for ((stdlibVersion, alignedVersion) in listOf( + defaultBuildOptions.kotlinVersion to constrainedAlignmentVersion, + "1.9.0" to "1.9.0" + )) { + project("sourceSetsKotlinDsl", gradleVersion) { + buildGradleKts.appendText( """ - |\--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2 - | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.2 - | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.30 -> ${buildOptions.kotlinVersion} - """.trimMargin().normalizeLineEndings() + | + |dependencies { + | implementation(kotlin("stdlib", version = "$stdlibVersion")) + | implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2") + |} + """.trimMargin() ) + + build("dependencies", "--configuration", "compileClasspath") { + assertOutputContains( + """ + |\--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2 + | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.2 + | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.30 -> ${alignedVersion} + """.trimMargin().normalizeLineEndings() + ) + } } } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/stdlibDependencyManagement.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/stdlibDependencyManagement.kt index fa4d02de6ff..46fd9dd2d2e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/stdlibDependencyManagement.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/stdlibDependencyManagement.kt @@ -81,7 +81,7 @@ internal fun ConfigurationContainer.configureStdlibVersionAlignment() = all { co if (dependency.group == KOTLIN_MODULE_GROUP && (dependency.name == KOTLIN_STDLIB_MODULE_NAME || dependency.name == KOTLIN_STDLIB_JDK7_MODULE_NAME) && dependency.version != null && - SemVer.fromGradleRichVersion(dependency.version!!) >= kotlin180Version + SemVer.fromGradleRichVersion(dependency.version!!).let { it >= kotlin180Version && it < kotlin1920Version } ) { if (configuration.isCanBeResolved) configuration.alignStdlibJvmVariantVersions(dependency)