Remove old code used to configure Gradle plugin publication.

^KT-49227 In Progress
This commit is contained in:
Yahor Berdnikau
2021-11-17 14:02:00 +01:00
committed by Space
parent 4c2434ecf0
commit ab564d371e
6 changed files with 0 additions and 161 deletions
-1
View File
@@ -374,7 +374,6 @@ val gradlePluginProjects = listOf(
apply {
from("libraries/commonConfiguration.gradle")
from("libraries/configureGradleTools.gradle")
}
apply {
-10
View File
@@ -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<Jar>().configureEach {
if (name == javadocJarTaskName) {
from(dokkaTask.flatMap { it.outputDirectory })
configurePublishedComponent {
addVariantsFromConfiguration(configurations[JAVADOC_ELEMENTS_CONFIGURATION_NAME]) { }
}
}
}
}
-12
View File
@@ -195,18 +195,6 @@ fun Project.publish(moduleMetadata: Boolean = false, configure: MavenPublication
publication.configure()
}
fun Project.publishGradlePlugin() {
mainPublicationName = "pluginMaven"
publish()
afterEvaluate {
tasks.withType<PublishTask> {
// 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) {
-89
View File
@@ -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<PluginBundleExtension>()
val publishingExtension = extensions.getByType<PublishingExtension>()
val mainPublication = publishingExtension.publications[mainPublicationName] as MavenPublication
pluginDevelopment.plugins.forEach { declaration ->
val markerPublication = createMavenMarkerPublication(declaration, mainPublication, publishingExtension.publications)
if (withEmptyJars) {
addEmptyJarArtifacts(markerPublication)
}
tasks.named<PublishToMavenRepository>(
"publish${markerPublication.name.capitalize(Locale.ROOT)}PublicationTo${KotlinBuildPublishingPlugin.REPOSITORY_NAME}Repository"
).apply {
configureRepository()
configure {
onlyIf { !isSonatypePublish() }
}
}
}
}
fun Project.addEmptyJarArtifacts(publication: MavenPublication) {
val emptyJar = getOrCreateTask<Jar>("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<MavenPublication>(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)
}
}
-8
View File
@@ -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 {
-41
View File
@@ -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']
}
}
}