From c072c8200b7cd2c745848682cc634f70879f941e Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Mon, 22 Feb 2021 12:25:48 +0100 Subject: [PATCH] Fix test was using removed publication plugin. Replace usage of removed 'maven' plugin with 'maven-publish'. ^KT-44949 In Progress --- .../AbstractKotlinAndroidGradleTests.kt | 48 ++++++++++++------- .../kotlin/gradle/KotlinGradlePluginIT.kt | 27 +++++++++-- .../kotlin/gradle/NewMultiplatformIT.kt | 21 +++----- .../js-app/build.gradle | 38 ++++----------- .../jvm-app/build.gradle | 38 ++++----------- 5 files changed, 77 insertions(+), 95 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt index fb5a48ac4de..fc2916ac6ba 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt @@ -522,27 +522,43 @@ open class KotlinAndroid34GradleIT : KotlinAndroid3GradleIT() { setupWorkingDir() gradleBuildScript("Lib").modify { - it.checkedReplace("kotlin-stdlib:\$kotlin_version", "kotlin-stdlib") + "\n" + """ - apply plugin: 'maven' - group 'com.example' - version '1.0' - android { - defaultPublishConfig 'flavor1Debug' - } - uploadArchives { - repositories { - mavenDeployer { - repository(url: "file://${'$'}buildDir/repo") + + it.checkedReplace( + "kotlin-stdlib:\$kotlin_version", + "kotlin-stdlib" + ) + "\n" + + """ + apply plugin: 'maven-publish' + + android { + defaultPublishConfig 'flavor1Debug' + } + + afterEvaluate { + publishing { + publications { + flavorDebug(MavenPublication) { + from components.flavor1Debug + + group = 'com.example' + artifactId = 'flavor1Debug' + version = '1.0' + } + } + repositories { + maven { + url = "file://${'$'}buildDir/repo" + } + } } } - } - """.trimIndent() + """.trimIndent() } - build(":Lib:assembleFlavor1Debug", ":Lib:uploadArchives") { + build(":Lib:assembleFlavor1Debug", ":Lib:publish") { assertSuccessful() - assertTasksExecuted(":Lib:compileFlavor1DebugKotlin", ":Lib:uploadArchives") - val pomLines = File(projectDir, "Lib/build/repo/com/example/Lib/1.0/Lib-1.0.pom").readLines() + assertTasksExecuted(":Lib:compileFlavor1DebugKotlin", ":Lib:publishFlavorDebugPublicationToMavenRepository") + val pomLines = File(projectDir, "Lib/build/repo/com/example/flavor1Debug/1.0/flavor1Debug-1.0.pom").readLines() val stdlibVersionLineNumber = pomLines.indexOfFirst { "kotlin-stdlib" in it } + 1 val versionLine = pomLines[stdlibVersionLineNumber] assertTrue { "${defaultBuildOptions().kotlinVersion}" in versionLine } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt index 8651869d8db..4a8e8922d08 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt @@ -387,15 +387,34 @@ class KotlinGradleIT : BaseGradleIT() { project.setupWorkingDir() File(project.projectDir, "build.gradle").modify { it.replace("kotlin-stdlib:\$kotlin_version", "kotlin-stdlib").apply { check(!equals(it)) } + "\n" + """ - apply plugin: 'maven' - install.repositories { maven { url "file://${'$'}buildDir/repo" } } + apply plugin: 'maven-publish' + + group = "com.example" + version = "1.0" + + publishing { + publications { + myLibrary(MavenPublication) { + from components.kotlin + } + } + repositories { + maven { + url = "${'$'}buildDir/repo" + } + } + } """.trimIndent() } - project.build("build", "install", options = defaultBuildOptions().copy(warningMode = WarningMode.Summary)) { + project.build( + "build", + "publishAllPublicationsToMavenRepository", + options = defaultBuildOptions().copy(warningMode = WarningMode.Summary) + ) { assertSuccessful() assertTasksExecuted(":compileKotlin", ":compileTestKotlin") - val pomLines = File(project.projectDir, "build/poms/pom-default.xml").readLines() + val pomLines = File(project.projectDir, "build/publications/myLibrary/pom-default.xml").readLines() val stdlibVersionLineNumber = pomLines.indexOfFirst { "kotlin-stdlib" in it } + 1 val versionLine = pomLines[stdlibVersionLineNumber] assertTrue { "${defaultBuildOptions().kotlinVersion}" in versionLine } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt index e1859e360ea..19905d80697 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt @@ -1532,26 +1532,19 @@ class NewMultiplatformIT : BaseGradleIT() { assertFileExists(groupDir + "mpp-lib-myjvm") } - fun doTestPomRewriting(mppProjectDependency: Boolean, legacyPublishing: Boolean, keepPomIntact: Boolean? = null) { + fun doTestPomRewriting(mppProjectDependency: Boolean, keepPomIntact: Boolean? = null) { val params = mutableListOf("clean", ":jvm-app:publish", ":js-app:publish").apply { if (mppProjectDependency) add("-PmppProjectDependency=true") - if (legacyPublishing) - add("-PlegacyPublishing=true") if (keepPomIntact == true) add("-Pkotlin.mpp.keepMppDependenciesIntactInPoms=true") }.toTypedArray() build(*params, options = defaultBuildOptions().copy(warningMode = WarningMode.Summary)) { assertSuccessful() - if (legacyPublishing) { - assertTasksExecuted(":jvm-app:uploadArchives") - assertTasksExecuted(":js-app:uploadArchives") - } else { - assertTasksExecuted(":jvm-app:publishMainPublicationToMavenRepository") - assertTasksExecuted(":js-app:publishMainPublicationToMavenRepository") - } + assertTasksExecuted(":jvm-app:publishMainPublicationToMavenRepository") + assertTasksExecuted(":js-app:publishMainPublicationToMavenRepository") val jvmModuleDir = groupDir + "jvm-app/1.0/" val jsModuleDir = groupDir + "js-app/1.0/" @@ -1584,16 +1577,14 @@ class NewMultiplatformIT : BaseGradleIT() { } } - doTestPomRewriting(mppProjectDependency = false, legacyPublishing = false) - doTestPomRewriting(mppProjectDependency = false, legacyPublishing = true) - doTestPomRewriting(mppProjectDependency = true, legacyPublishing = false) + doTestPomRewriting(mppProjectDependency = false) + doTestPomRewriting(mppProjectDependency = true) // This case doesn't work and never did; TODO investigate KT-29975 // doTestPomRewriting(mppProjectDependency = true, legacyPublishing = true) // Also check that the flag for keeping POMs intact works: - doTestPomRewriting(mppProjectDependency = false, legacyPublishing = false, keepPomIntact = true) - doTestPomRewriting(mppProjectDependency = false, legacyPublishing = true, keepPomIntact = true) + doTestPomRewriting(mppProjectDependency = false, keepPomIntact = true) } @Test diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-27059-pom-rewriting/js-app/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-27059-pom-rewriting/js-app/build.gradle index de4922b4254..8eed59f66a3 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-27059-pom-rewriting/js-app/build.gradle +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-27059-pom-rewriting/js-app/build.gradle @@ -1,5 +1,6 @@ plugins { id "kotlin2js" + id "maven-publish" } group = "com.example" @@ -27,36 +28,13 @@ if (project.findProperty("mppProjectDependency") == "true") { } - -if (project.findProperty("legacyPublishing") == "true") { - - apply plugin: 'maven' - - uploadArchives { - repositories { - mavenDeployer { - repository(url: "file://${rootProject.buildDir}/repo") - } +publishing { + publications { + main(MavenPublication) { + from components.java } } - - tasks.create("publish") { - dependsOn uploadArchives + repositories { + maven { setUrl("${rootProject.buildDir}/repo") } } - -} else { - - apply plugin: 'maven-publish' - - publishing { - publications { - main(MavenPublication) { - from components.java - } - } - repositories { - maven { setUrl("${rootProject.buildDir}/repo") } - } - } - -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-27059-pom-rewriting/jvm-app/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-27059-pom-rewriting/jvm-app/build.gradle index b088a3f6540..f53b4800048 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-27059-pom-rewriting/jvm-app/build.gradle +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-27059-pom-rewriting/jvm-app/build.gradle @@ -1,5 +1,6 @@ plugins { id "org.jetbrains.kotlin.jvm" + id "maven-publish" } group = "com.example" @@ -27,36 +28,13 @@ if (project.findProperty("mppProjectDependency") == "true") { } - -if (project.findProperty("legacyPublishing") == "true") { - - apply plugin: 'maven' - - uploadArchives { - repositories { - mavenDeployer { - repository(url: "file://${rootProject.buildDir}/repo") - } +publishing { + publications { + main(MavenPublication) { + from components.java } } - - tasks.create("publish") { - dependsOn uploadArchives + repositories { + maven { setUrl("${rootProject.buildDir}/repo") } } - -} else { - - apply plugin: 'maven-publish' - - publishing { - publications { - main(MavenPublication) { - from components.java - } - } - repositories { - maven { setUrl("${rootProject.buildDir}/repo") } - } - } - -} \ No newline at end of file +}