diff --git a/build.gradle.kts b/build.gradle.kts index a6b2a714217..3da718e8f06 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -33,6 +33,20 @@ buildscript { classpath(kotlin("gradle-plugin", bootstrapKotlinVersion)) classpath(kotlin("serialization", bootstrapKotlinVersion)) } + + val versionPropertiesFile = project.rootProject.projectDir.resolve("gradle/versions.properties") + val versionProperties = java.util.Properties() + versionPropertiesFile.inputStream().use { propInput -> + versionProperties.load(propInput) + } + configurations.all { + resolutionStrategy.eachDependency { + if (requested.group == "com.google.code.gson" && requested.name == "gson") { + useVersion(versionProperties["versions.gson"] as String) + because("Force using same gson version because of https://github.com/google/gson/pull/1991") + } + } + } } plugins { diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index f73ff9a7a54..fb7ff8e54e2 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -28,6 +28,20 @@ buildscript { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${project.bootstrapKotlinVersion}") classpath("org.jetbrains.kotlin:kotlin-sam-with-receiver:${project.bootstrapKotlinVersion}") } + + val versionPropertiesFile = project.rootProject.projectDir.parentFile.resolve("gradle/versions.properties") + val versionProperties = java.util.Properties() + versionPropertiesFile.inputStream().use { propInput -> + versionProperties.load(propInput) + } + configurations.all { + resolutionStrategy.eachDependency { + if (requested.group == "com.google.code.gson" && requested.name == "gson") { + useVersion(versionProperties["versions.gson"] as String) + because("Force using same gson version because of https://github.com/google/gson/pull/1991") + } + } + } } logger.info("buildSrcKotlinVersion: " + extra["bootstrapKotlinVersion"]) diff --git a/buildSrc/settings.gradle b/buildSrc/settings.gradle index 778523384b1..7e065a48ef9 100644 --- a/buildSrc/settings.gradle +++ b/buildSrc/settings.gradle @@ -11,6 +11,28 @@ pluginManagement { } } +File versionPropertiesFile = new File(rootProject.projectDir.parentFile, "gradle/versions.properties") +def versionProperties = new Properties() +versionPropertiesFile.withInputStream { + versionProperties.load(it) +} +dependencyResolutionManagement { + components { + withModule("com.google.code.gson:gson") { + allVariants { + withDependencies { + add("com.google.code.gson:gson") { + version { + it.require(versionProperties['versions.gson']) + } + because("Force using same gson version because of https://github.com/google/gson/pull/1991") + } + } + } + } + } +} + buildscript { repositories { if (cacheRedirectorEnabled == 'true') { diff --git a/buildSrc/src/main/kotlin/dependencies.kt b/buildSrc/src/main/kotlin/dependencies.kt index a9a769f54c8..4dd430d047d 100644 --- a/buildSrc/src/main/kotlin/dependencies.kt +++ b/buildSrc/src/main/kotlin/dependencies.kt @@ -55,12 +55,12 @@ fun Project.commonDependency(group: String, artifact: String, vararg suffixesAnd return "$group:$artifact${artifactSuffixes.joinToString("")}:${commonDependencyVersion(group, artifact)}${classifiers.joinToString("")}" } -fun Project.commonDependencyVersion(group: String, artifact: String) = +fun Project.commonDependencyVersion(group: String, artifact: String): String = when { rootProject.extra.has("versions.$artifact") -> rootProject.extra["versions.$artifact"] rootProject.extra.has("versions.$group") -> rootProject.extra["versions.$group"] else -> throw GradleException("Neither versions.$artifact nor versions.$group is defined in the root project's extra") - } + } as String fun Project.preloadedDeps( vararg artifactBaseNames: String, diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 36fdbba524e..50ba0a87138 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -1688,58 +1688,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + diff --git a/gradle/versions.properties b/gradle/versions.properties index c5e4367bec7..0b41228e4cc 100644 --- a/gradle/versions.properties +++ b/gradle/versions.properties @@ -13,7 +13,7 @@ versions.commons-lang=2.4 versions.gradle-api=4.5.1 versions.groovy-xml=2.5.11 versions.groovy=2.5.11 -versions.gson=2.8.6 +versions.gson=2.8.9 versions.guava=29.0-jre versions.intellij-deps-fastutil=8.4.1-4 versions.jdom=2.0.6 diff --git a/kotlin-native/gradle/kotlinGradlePlugin.gradle b/kotlin-native/gradle/kotlinGradlePlugin.gradle index 6fb05bd923e..fba4bf9b2b3 100644 --- a/kotlin-native/gradle/kotlinGradlePlugin.gradle +++ b/kotlin-native/gradle/kotlinGradlePlugin.gradle @@ -10,6 +10,21 @@ project.buildscript.repositories { mavenCentral() } +File versionPropertiesFile = new File(rootProject.projectDir, "gradle/versions.properties") +def versionProperties = new Properties() +versionPropertiesFile.withInputStream { + versionProperties.load(it) +} + +project.buildscript.configurations.all { + resolutionStrategy.eachDependency { + if (requested.group == "com.google.code.gson" && requested.name == "gson") { + useVersion(versionProperties['versions.gson']) + because("Force using same gson version because of https://github.com/google/gson/pull/1991") + } + } +} + project.buildscript.dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${project.bootstrapKotlinVersion}" } diff --git a/settings.gradle b/settings.gradle index a5a87d478c5..99a1285dceb 100644 --- a/settings.gradle +++ b/settings.gradle @@ -39,6 +39,28 @@ plugins { id "com.gradle.common-custom-user-data-gradle-plugin" version "1.6.5" apply false } +File versionPropertiesFile = new File(rootProject.projectDir, "gradle/versions.properties") +def versionProperties = new Properties() +versionPropertiesFile.withInputStream { + versionProperties.load(it) +} +dependencyResolutionManagement { + components { + withModule("com.google.code.gson:gson") { + allVariants { + withDependencies { + add("com.google.code.gson:gson") { + version { + it.require(versionProperties['versions.gson']) + } + because("Force using same gson version because of https://github.com/google/gson/pull/1991") + } + } + } + } + } +} + def buildProperties = BuildPropertiesKt.getKotlinBuildPropertiesForSettings(settings) if (buildProperties.buildScanServer != null) {