From f0f5e11e72ffba8aa542a65bcce6c28eb79be57b Mon Sep 17 00:00:00 2001 From: Ivan Gavrilovic Date: Wed, 1 Sep 2021 07:01:52 +0100 Subject: [PATCH] MPP Gradle - Stop using convention mapping for archive name (#4529) The "archiveFile" property is deprecated on the jar task, and archiveFileName is used in this commit. Also, this fixes an issue in Gradle where convention mapping is incorrectly deserialized from configuraiton cache. Original issue: https://issuetracker.google.com/193558867 Test: testJvmWithJavaConfigurationCache --- .../kotlin/gradle/ConfigurationCacheIT.kt | 15 +++++++++++++++ .../testProject/mppJvmWithJava/build.gradle | 1 - .../kotlin/gradle/targets/jvm/KotlinJvmTarget.kt | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheIT.kt index 9e7473f9d75..8b71f7c13d2 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheIT.kt @@ -146,6 +146,21 @@ class ConfigurationCacheIT : AbstractConfigurationCacheIT() { ) } + @Test + fun testJvmWithJavaConfigurationCache() = + with(Project("mppJvmWithJava", gradleVersionRequirement = GradleVersionRequired.AtLeast("7.1"))) { + setupWorkingDir() + + build("jar", options = defaultBuildOptions().copy(configurationCache = true)) { + assertSuccessful() + } + + build("jar", options = defaultBuildOptions().copy(configurationCache = true)) { + assertSuccessful() + assertContains("Reusing configuration cache.") + } + } + // KT-48241 @Test fun testConfigurationCacheJsWithTestDependencies() = with(transformProjectWithPluginsDsl("kotlin-js-project-with-test-dependencies")) { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mppJvmWithJava/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mppJvmWithJava/build.gradle index 6062d794c8c..1ce74199ef9 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mppJvmWithJava/build.gradle +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mppJvmWithJava/build.gradle @@ -10,7 +10,6 @@ buildscript { } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath "com.android.tools.build:gradle:$android_tools_version" } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTarget.kt index 25f01448d80..bf7ba529644 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTarget.kt @@ -127,7 +127,7 @@ open class KotlinJvmTarget @Inject constructor( project.tasks.withType(Jar::class.java).named(javaPluginConvention.sourceSets.getByName("main").jarTaskName) { javaJar -> (javaJar.source as? ConfigurableFileCollection)?.setFrom(targetJar.map { it.source }) - javaJar.conventionMapping("archiveName") { targetJar.get().archiveFileName.get() } + javaJar.archiveFileName.set(targetJar.flatMap { it.archiveFileName }) javaJar.dependsOn(targetJar) javaJar.enabled = false }