From ab564d371e997d7977e9c1ba3cae0b6892b8b280 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Wed, 17 Nov 2021 14:02:00 +0100 Subject: [PATCH] Remove old code used to configure Gradle plugin publication. ^KT-49227 In Progress --- build.gradle.kts | 1 - buildSrc/src/main/kotlin/GradleCommon.kt | 10 --- buildSrc/src/main/kotlin/artifacts.kt | 12 --- buildSrc/src/main/kotlin/pluginMarkers.kt | 89 ----------------------- libraries/commonConfiguration.gradle | 8 -- libraries/configureGradleTools.gradle | 41 ----------- 6 files changed, 161 deletions(-) delete mode 100644 buildSrc/src/main/kotlin/pluginMarkers.kt delete mode 100644 libraries/configureGradleTools.gradle diff --git a/build.gradle.kts b/build.gradle.kts index 4c5e4b000a3..1b017f8b7d9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -374,7 +374,6 @@ val gradlePluginProjects = listOf( apply { from("libraries/commonConfiguration.gradle") - from("libraries/configureGradleTools.gradle") } apply { diff --git a/buildSrc/src/main/kotlin/GradleCommon.kt b/buildSrc/src/main/kotlin/GradleCommon.kt index a1f5fcbd2ce..3fde4a491e6 100644 --- a/buildSrc/src/main/kotlin/GradleCommon.kt +++ b/buildSrc/src/main/kotlin/GradleCommon.kt @@ -7,8 +7,6 @@ import org.gradle.api.Project import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.ModuleDependency import org.gradle.api.plugins.JavaLibraryPlugin -import org.gradle.api.plugins.JavaPlugin.JAVADOC_ELEMENTS_CONFIGURATION_NAME -import org.gradle.api.plugins.JavaPlugin.SOURCES_ELEMENTS_CONFIGURATION_NAME import org.gradle.api.plugins.JavaPluginExtension import org.gradle.api.publish.PublishingExtension import org.gradle.api.publish.maven.MavenPublication @@ -92,10 +90,6 @@ fun Project.configureGradlePluginCommonSettings() { addEmbeddedRuntime() } else if (name == sourcesJarTaskName) { addEmbeddedSources() - - configurePublishedComponent { - addVariantsFromConfiguration(configurations[SOURCES_ELEMENTS_CONFIGURATION_NAME]) {} - } } } @@ -114,10 +108,6 @@ fun Project.configureGradlePluginCommonSettings() { tasks.withType().configureEach { if (name == javadocJarTaskName) { from(dokkaTask.flatMap { it.outputDirectory }) - - configurePublishedComponent { - addVariantsFromConfiguration(configurations[JAVADOC_ELEMENTS_CONFIGURATION_NAME]) { } - } } } } diff --git a/buildSrc/src/main/kotlin/artifacts.kt b/buildSrc/src/main/kotlin/artifacts.kt index aaa7266b631..ffdac5cf60f 100644 --- a/buildSrc/src/main/kotlin/artifacts.kt +++ b/buildSrc/src/main/kotlin/artifacts.kt @@ -195,18 +195,6 @@ fun Project.publish(moduleMetadata: Boolean = false, configure: MavenPublication publication.configure() } -fun Project.publishGradlePlugin() { - mainPublicationName = "pluginMaven" - publish() - - afterEvaluate { - tasks.withType { - // Makes plugin publication task reuse poms and metadata from publication named "pluginMaven" - useAutomatedPublishing() - } - } -} - fun Project.idePluginDependency(block: () -> Unit) { val shouldActivate = rootProject.findProperty("publish.ide.plugin.dependencies")?.toString()?.toBoolean() == true if (shouldActivate) { diff --git a/buildSrc/src/main/kotlin/pluginMarkers.kt b/buildSrc/src/main/kotlin/pluginMarkers.kt deleted file mode 100644 index ab82d4b1e9f..00000000000 --- a/buildSrc/src/main/kotlin/pluginMarkers.kt +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -import com.gradle.publish.PluginBundleExtension -import com.gradle.publish.PluginConfig -import org.gradle.api.Project -import org.gradle.api.publish.PublicationContainer -import org.gradle.api.publish.PublishingExtension -import org.gradle.api.publish.maven.MavenPublication -import org.gradle.api.publish.maven.tasks.PublishToMavenRepository -import org.gradle.api.tasks.bundling.Jar -import org.gradle.kotlin.dsl.* -import plugins.KotlinBuildPublishingPlugin -import plugins.configureRepository -import plugins.mainPublicationName -import java.util.* - -internal const val PLUGIN_MARKER_SUFFIX = ".gradle.plugin" - -@OptIn(ExperimentalStdlibApi::class) -fun Project.publishPluginMarkers(withEmptyJars: Boolean = true) { - - fun Project.isSonatypePublish(): Boolean = - hasProperty("isSonatypePublish") && property("isSonatypePublish") as Boolean - - val pluginDevelopment = extensions.getByType() - val publishingExtension = extensions.getByType() - val mainPublication = publishingExtension.publications[mainPublicationName] as MavenPublication - - pluginDevelopment.plugins.forEach { declaration -> - val markerPublication = createMavenMarkerPublication(declaration, mainPublication, publishingExtension.publications) - if (withEmptyJars) { - addEmptyJarArtifacts(markerPublication) - } - - tasks.named( - "publish${markerPublication.name.capitalize(Locale.ROOT)}PublicationTo${KotlinBuildPublishingPlugin.REPOSITORY_NAME}Repository" - ).apply { - configureRepository() - configure { - onlyIf { !isSonatypePublish() } - } - } - } -} - -fun Project.addEmptyJarArtifacts(publication: MavenPublication) { - val emptyJar = getOrCreateTask("emptyJar") { - archiveBaseName.set("empty") - } - - publication.artifact(emptyJar.get()) { } - publication.artifact(emptyJar.get()) { classifier = "sources" } - publication.artifact(emptyJar.get()) { classifier = "javadoc" } -} - -// Based on code from `java-gradle-plugin` -// https://github.com/gradle/gradle/blob/v6.4.0/subprojects/plugin-development/src/main/java/org/gradle/plugin/devel/plugins/MavenPluginPublishPlugin.java#L84 -private fun createMavenMarkerPublication( - declaration: PluginConfig, - coordinates: MavenPublication, - publications: PublicationContainer -): MavenPublication { - return publications.create(declaration.name.toString() + "PluginMarkerMaven") { - val pluginId: String = declaration.id - val cGroupId = coordinates.groupId - val cArtifactId = coordinates.artifactId - val cVersion = coordinates.version - artifactId = pluginId + PLUGIN_MARKER_SUFFIX - groupId = pluginId - pom.withXml { - val root = asElement() - val document = root.ownerDocument - val dependencies = root.appendChild(document.createElement("dependencies")) - val dependency = dependencies.appendChild(document.createElement("dependency")) - val groupId = dependency.appendChild(document.createElement("groupId")) - groupId.textContent = cGroupId - val artifactId = dependency.appendChild(document.createElement("artifactId")) - artifactId.textContent = cArtifactId - val version = dependency.appendChild(document.createElement("version")) - version.textContent = cVersion - } - - pom.name.set(declaration.displayName) - pom.description.set(declaration.description) - } -} diff --git a/libraries/commonConfiguration.gradle b/libraries/commonConfiguration.gradle index 2427cf94ea5..4fcbeffc1bc 100644 --- a/libraries/commonConfiguration.gradle +++ b/libraries/commonConfiguration.gradle @@ -56,14 +56,6 @@ ext.configurePublishing = { Project project, configure = { } -> } } -ext.configureGradlePluginPublishing = { Project project -> - ArtifactsKt.publishGradlePlugin(project) -} - -ext.configurePluginMarkers = { Project project, withEmptyJars = true -> - PluginMarkersKt.publishPluginMarkers(project, withEmptyJars) -} - ext.configureFrontendIr = { Project project -> project.tasks.withType(KotlinCompile.class) { task -> task.kotlinOptions { diff --git a/libraries/configureGradleTools.gradle b/libraries/configureGradleTools.gradle deleted file mode 100644 index 5779bc8ea5a..00000000000 --- a/libraries/configureGradleTools.gradle +++ /dev/null @@ -1,41 +0,0 @@ -def pluginProjects = [ - project(':kotlin-gradle-plugin'), - project(':kotlin-allopen'), - project(':kotlin-noarg'), - project(':kotlin-serialization'), - project(':atomicfu'), - project(':kotlin-lombok') -] -configure(pluginProjects) { project -> - apply plugin: 'com.gradle.plugin-publish' - - afterEvaluate { - if (project.hasProperty('publishPluginsVersion')) { - configurations.archives.artifacts.all { - version = project.getProperty('publishPluginsVersion') - } - } - - if (project.hasProperty("${project.name}-jar")) { - println("Using pre-built artifact for ${project.name}") - configurations.archives.artifacts.clear() - - artifacts { - archives(file(project.getProperty("${project.name}-jar"))) { - name project.name - } - } - } - - publishPlugins.doFirst { - assert !kotlinVersion.contains('SNAPSHOT') - } - - pluginBundle { - website = 'https://kotlinlang.org/' - vcsUrl = 'https://github.com/JetBrains/kotlin/' - description = 'Kotlin plugins for Gradle' - tags = ['kotlin'] - } - } -}