Remove old code used to configure Gradle plugin publication.
^KT-49227 In Progress
This commit is contained in:
@@ -374,7 +374,6 @@ val gradlePluginProjects = listOf(
|
||||
|
||||
apply {
|
||||
from("libraries/commonConfiguration.gradle")
|
||||
from("libraries/configureGradleTools.gradle")
|
||||
}
|
||||
|
||||
apply {
|
||||
|
||||
@@ -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]) { }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
@@ -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']
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user