Align stdlib version also on kotlin-stdlib-jdk7:1.8+ in dependencies
To avoid having transitive kotlin-stdlib-jdk8 with older version leading to classpath conflicts. ^KT-54703 In Progress
This commit is contained in:
committed by
Space Team
parent
5f40ba5bd9
commit
0122b73bae
+29
@@ -84,6 +84,35 @@ class StdlibAlignmentIT : KGPBaseTest() {
|
||||
}
|
||||
}
|
||||
|
||||
@JvmGradlePluginTests
|
||||
@DisplayName("substitution is working when stldib-jdk7:1.8+ is added as dependency")
|
||||
@GradleTest
|
||||
fun stdlibJdk7Substitution(gradleVersion: GradleVersion) {
|
||||
project("sourceSetsKotlinDsl", gradleVersion) {
|
||||
buildGradleKts.appendText(
|
||||
"""
|
||||
|
|
||||
|dependencies {
|
||||
| implementation(kotlin("stdlib-jdk7"))
|
||||
| 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 -> org.jetbrains.kotlin:kotlin-stdlib:${buildOptions.kotlinVersion} (*)
|
||||
| \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> ${buildOptions.kotlinVersion}
|
||||
|
|
||||
""".trimMargin()
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@JvmGradlePluginTests
|
||||
@DisplayName("stdlib-jdk7, stdlib-jdk8 substitution with stdlib:1.8+ in Kotlin DSL")
|
||||
@GradleTest
|
||||
|
||||
+7
-4
@@ -60,7 +60,7 @@ internal fun ConfigurationContainer.configureStdlibSubstitution() = all { config
|
||||
.withType<ExternalDependency>()
|
||||
.configureEach { dependency ->
|
||||
if (dependency.group == KOTLIN_MODULE_GROUP &&
|
||||
dependency.name == "kotlin-stdlib" &&
|
||||
(dependency.name == "kotlin-stdlib" || dependency.name == "kotlin-stdlib-jdk7") &&
|
||||
dependency.version != null &&
|
||||
SemVer.from(dependency.version!!) >= kotlin180Version
|
||||
) {
|
||||
@@ -82,9 +82,12 @@ private fun Configuration.substitudeStdlibJvmVariants(
|
||||
kotlinStdlibDependency: ExternalDependency
|
||||
) {
|
||||
resolutionStrategy.dependencySubstitution {
|
||||
it.substitute(it.module("org.jetbrains.kotlin:kotlin-stdlib-jdk7"))
|
||||
.using(it.module("org.jetbrains.kotlin:kotlin-stdlib:${kotlinStdlibDependency.version}"))
|
||||
.because("kotlin-stdlib-jdk7 is now part of kotlin-stdlib")
|
||||
if (kotlinStdlibDependency.name != "kotlin-stdlib-jdk7") {
|
||||
it.substitute(it.module("org.jetbrains.kotlin:kotlin-stdlib-jdk7"))
|
||||
.using(it.module("org.jetbrains.kotlin:kotlin-stdlib:${kotlinStdlibDependency.version}"))
|
||||
.because("kotlin-stdlib-jdk7 is now part of kotlin-stdlib")
|
||||
}
|
||||
|
||||
it.substitute(it.module("org.jetbrains.kotlin:kotlin-stdlib-jdk8"))
|
||||
.using(it.module("org.jetbrains.kotlin:kotlin-stdlib:${kotlinStdlibDependency.version}"))
|
||||
.because("kotlin-stdlib-jdk8 is now part of kotlin-stdlib")
|
||||
|
||||
Reference in New Issue
Block a user