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 {
|
apply {
|
||||||
from("libraries/commonConfiguration.gradle")
|
from("libraries/commonConfiguration.gradle")
|
||||||
from("libraries/configureGradleTools.gradle")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
apply {
|
apply {
|
||||||
|
|||||||
@@ -7,8 +7,6 @@ import org.gradle.api.Project
|
|||||||
import org.gradle.api.artifacts.Configuration
|
import org.gradle.api.artifacts.Configuration
|
||||||
import org.gradle.api.artifacts.ModuleDependency
|
import org.gradle.api.artifacts.ModuleDependency
|
||||||
import org.gradle.api.plugins.JavaLibraryPlugin
|
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.plugins.JavaPluginExtension
|
||||||
import org.gradle.api.publish.PublishingExtension
|
import org.gradle.api.publish.PublishingExtension
|
||||||
import org.gradle.api.publish.maven.MavenPublication
|
import org.gradle.api.publish.maven.MavenPublication
|
||||||
@@ -92,10 +90,6 @@ fun Project.configureGradlePluginCommonSettings() {
|
|||||||
addEmbeddedRuntime()
|
addEmbeddedRuntime()
|
||||||
} else if (name == sourcesJarTaskName) {
|
} else if (name == sourcesJarTaskName) {
|
||||||
addEmbeddedSources()
|
addEmbeddedSources()
|
||||||
|
|
||||||
configurePublishedComponent {
|
|
||||||
addVariantsFromConfiguration(configurations[SOURCES_ELEMENTS_CONFIGURATION_NAME]) {}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -114,10 +108,6 @@ fun Project.configureGradlePluginCommonSettings() {
|
|||||||
tasks.withType<Jar>().configureEach {
|
tasks.withType<Jar>().configureEach {
|
||||||
if (name == javadocJarTaskName) {
|
if (name == javadocJarTaskName) {
|
||||||
from(dokkaTask.flatMap { it.outputDirectory })
|
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()
|
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) {
|
fun Project.idePluginDependency(block: () -> Unit) {
|
||||||
val shouldActivate = rootProject.findProperty("publish.ide.plugin.dependencies")?.toString()?.toBoolean() == true
|
val shouldActivate = rootProject.findProperty("publish.ide.plugin.dependencies")?.toString()?.toBoolean() == true
|
||||||
if (shouldActivate) {
|
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 ->
|
ext.configureFrontendIr = { Project project ->
|
||||||
project.tasks.withType(KotlinCompile.class) { task ->
|
project.tasks.withType(KotlinCompile.class) { task ->
|
||||||
task.kotlinOptions {
|
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