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
|
@JvmGradlePluginTests
|
||||||
@DisplayName("stdlib-jdk7, stdlib-jdk8 substitution with stdlib:1.8+ in Kotlin DSL")
|
@DisplayName("stdlib-jdk7, stdlib-jdk8 substitution with stdlib:1.8+ in Kotlin DSL")
|
||||||
@GradleTest
|
@GradleTest
|
||||||
|
|||||||
+7
-4
@@ -60,7 +60,7 @@ internal fun ConfigurationContainer.configureStdlibSubstitution() = all { config
|
|||||||
.withType<ExternalDependency>()
|
.withType<ExternalDependency>()
|
||||||
.configureEach { dependency ->
|
.configureEach { dependency ->
|
||||||
if (dependency.group == KOTLIN_MODULE_GROUP &&
|
if (dependency.group == KOTLIN_MODULE_GROUP &&
|
||||||
dependency.name == "kotlin-stdlib" &&
|
(dependency.name == "kotlin-stdlib" || dependency.name == "kotlin-stdlib-jdk7") &&
|
||||||
dependency.version != null &&
|
dependency.version != null &&
|
||||||
SemVer.from(dependency.version!!) >= kotlin180Version
|
SemVer.from(dependency.version!!) >= kotlin180Version
|
||||||
) {
|
) {
|
||||||
@@ -82,9 +82,12 @@ private fun Configuration.substitudeStdlibJvmVariants(
|
|||||||
kotlinStdlibDependency: ExternalDependency
|
kotlinStdlibDependency: ExternalDependency
|
||||||
) {
|
) {
|
||||||
resolutionStrategy.dependencySubstitution {
|
resolutionStrategy.dependencySubstitution {
|
||||||
it.substitute(it.module("org.jetbrains.kotlin:kotlin-stdlib-jdk7"))
|
if (kotlinStdlibDependency.name != "kotlin-stdlib-jdk7") {
|
||||||
.using(it.module("org.jetbrains.kotlin:kotlin-stdlib:${kotlinStdlibDependency.version}"))
|
it.substitute(it.module("org.jetbrains.kotlin:kotlin-stdlib-jdk7"))
|
||||||
.because("kotlin-stdlib-jdk7 is now part of kotlin-stdlib")
|
.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"))
|
it.substitute(it.module("org.jetbrains.kotlin:kotlin-stdlib-jdk8"))
|
||||||
.using(it.module("org.jetbrains.kotlin:kotlin-stdlib:${kotlinStdlibDependency.version}"))
|
.using(it.module("org.jetbrains.kotlin:kotlin-stdlib:${kotlinStdlibDependency.version}"))
|
||||||
.because("kotlin-stdlib-jdk8 is now part of kotlin-stdlib")
|
.because("kotlin-stdlib-jdk8 is now part of kotlin-stdlib")
|
||||||
|
|||||||
Reference in New Issue
Block a user