From 39554ff33b2466befda2dedffc2bf455cdbbfdb7 Mon Sep 17 00:00:00 2001 From: Gabriel Ittner Date: Wed, 6 Apr 2022 21:33:14 +0200 Subject: [PATCH] remove legacy extension --- .../fixtures/common/gradle.properties | 2 + .../full_pom_project/gradle.properties | 2 + .../minimal_pom_project/gradle.properties | 2 + .../publish/MavenPublishBaseExtension.kt | 4 +- .../maven/publish/MavenPublishPlugin.kt | 61 +++---------------- .../publish/MavenPublishPluginExtension.kt | 52 ---------------- .../maven/publish/ProjectExtensions.kt | 3 - 7 files changed, 17 insertions(+), 109 deletions(-) delete mode 100644 plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishPluginExtension.kt diff --git a/plugin/src/integrationTest/fixtures/common/gradle.properties b/plugin/src/integrationTest/fixtures/common/gradle.properties index 9fdeca93..227885e5 100644 --- a/plugin/src/integrationTest/fixtures/common/gradle.properties +++ b/plugin/src/integrationTest/fixtures/common/gradle.properties @@ -1,3 +1,5 @@ +RELEASE_SIGNING_ENABLED=true + GROUP=com.example VERSION_NAME=1.0.0 POM_ARTIFACT_ID=test-artifact diff --git a/plugin/src/integrationTest/fixtures/full_pom_project/gradle.properties b/plugin/src/integrationTest/fixtures/full_pom_project/gradle.properties index 8985b1e8..d3051804 100644 --- a/plugin/src/integrationTest/fixtures/full_pom_project/gradle.properties +++ b/plugin/src/integrationTest/fixtures/full_pom_project/gradle.properties @@ -1,3 +1,5 @@ +RELEASE_SIGNING_ENABLED=true + GROUP=com.example VERSION_NAME=1.0.0 POM_ARTIFACT_ID=test-artifact diff --git a/plugin/src/integrationTest/fixtures/minimal_pom_project/gradle.properties b/plugin/src/integrationTest/fixtures/minimal_pom_project/gradle.properties index 8543f833..380985e5 100644 --- a/plugin/src/integrationTest/fixtures/minimal_pom_project/gradle.properties +++ b/plugin/src/integrationTest/fixtures/minimal_pom_project/gradle.properties @@ -1,3 +1,5 @@ +RELEASE_SIGNING_ENABLED=true + GROUP=com.example VERSION_NAME=1.0.0 POM_ARTIFACT_ID=test-artifact diff --git a/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishBaseExtension.kt b/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishBaseExtension.kt index 1269b00f..06237281 100644 --- a/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishBaseExtension.kt +++ b/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishBaseExtension.kt @@ -14,8 +14,8 @@ abstract class MavenPublishBaseExtension( private val project: Project ) { - internal var mavenCentral: Pair? = null - internal var signing: Boolean? = null + private var mavenCentral: Pair? = null + private var signing: Boolean? = null private var pomFromProperties: Boolean? = null private var platform: Platform? = null diff --git a/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishPlugin.kt b/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishPlugin.kt index e8afd469..dd25f383 100644 --- a/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishPlugin.kt +++ b/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishPlugin.kt @@ -4,7 +4,6 @@ import com.vanniktech.maven.publish.legacy.configurePlatform import com.vanniktech.maven.publish.legacy.setCoordinates import org.gradle.api.Plugin import org.gradle.api.Project -import org.gradle.plugins.signing.SigningPlugin open class MavenPublishPlugin : Plugin { @@ -12,60 +11,18 @@ open class MavenPublishPlugin : Plugin { project.plugins.apply(MavenPublishBasePlugin::class.java) val baseExtension = project.baseExtension - // Apply signing immediately. It is also applied by `signAllPublications` but the afterEvaluate means - // that it's APIs are not available for consumers without also using afterEvaluate. - project.plugins.apply(SigningPlugin::class.java) - - val extension = project.extensions.create("mavenPublish", MavenPublishPluginExtension::class.java, project) - project.setCoordinates() project.configurePlatform() - project.afterEvaluate { - val sonatypeHost = extension.sonatypeHost - // ignore old extension if new extension was already called - if (sonatypeHost != null && baseExtension.mavenCentral == null) { - // only print warning when sonatypeHost was not set through a gradle property, we will continue supporting this - if (extension.sonatypeHostProperty() == null) { - when (sonatypeHost) { - SonatypeHost.DEFAULT -> project.logger.warn( - "The project is currently configured to be published to " + - "Maven Central. To maintain the current behavior, you need to explicitly add SONATYPE_HOST=DEFAULT to " + - "your gradle.properties or add the following to your build files:\n" + - "mavenPublishing {" + - " publishToMavenCentral()" + - "}" - ) - SonatypeHost.S01 -> project.logger.warn( - "Configuring the sonatypeHost through the DSL is deprecated. " + - "Remove the old option and then add either SONATYPE_HOST=S01 to your gradle.properties or add the " + - "following to your build files:\n" + - "mavenPublishing {" + - " publishToMavenCentral(\"S01\")" + - "}" - ) - } - } - - baseExtension.publishToMavenCentral(sonatypeHost) - } - - // ignore old extension if new extension was already called - if (extension.releaseSigningEnabled && baseExtension.signing == null) { - if (extension.releaseSigningProperty() == null) { - project.logger.warn( - "The project is currently configured to be automatically sign release builds before " + - "publishing. To maintain the current behavior you will need to explicitly add " + - "RELEASE_SIGNING_ENABLED=true to your gradle.properties or add the following to your build files:\n" + - "mavenPublishing {" + - " signAllPublications()" + - "}" - ) - } - baseExtension.signAllPublications() - } - - baseExtension.pomFromGradleProperties() + val sonatypeHost = project.findOptionalProperty("SONATYPE_HOST") + if (sonatypeHost != null && sonatypeHost.isNotBlank()) { + baseExtension.publishToMavenCentral(SonatypeHost.valueOf(sonatypeHost)) + } + val releaseSigning = project.findOptionalProperty("RELEASE_SIGNING_ENABLED")?.toBoolean() + if (releaseSigning == true) { + baseExtension.signAllPublications() } + + baseExtension.pomFromGradleProperties() } } diff --git a/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishPluginExtension.kt b/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishPluginExtension.kt deleted file mode 100644 index 7f907783..00000000 --- a/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishPluginExtension.kt +++ /dev/null @@ -1,52 +0,0 @@ -package com.vanniktech.maven.publish - -import org.gradle.api.Project - -/** - * Extension for maven publish plugin. - * @since 0.1.0 - */ -abstract class MavenPublishPluginExtension( - private val project: Project -) { - - /** - * Sonatype splits users between 2 different instances. If you are using `oss.sonatype.org`, this should be set to - * [SonatypeHost.DEFAULT]. For `s01.oss.sonatype.org` [SonatypeHost.SO1] should be used instead. - * - * For more information see: https://central.sonatype.org/articles/2021/Feb/23/new-users-on-s01osssonatypeorg/ - * - * @Since 0.15.0 - */ - @Deprecated("Set the SONATYPE_HOST Gradle property or call mavenPublishing { publishToMavenCentral(\"\") } instead") - var sonatypeHost: SonatypeHost? = defaultSonatypeHost() - - /** - * Whether release artifacts should be signed before getting published. - * - * @Since 0.9.0 - */ - @Deprecated("Set the RELEASE_SIGNING_ENABLED Gradle property or call mavenPublishing { signAllPublications() } instead") - var releaseSigningEnabled: Boolean = releaseSigningProperty() ?: true - - internal fun sonatypeHostProperty(): String? { - return project.findOptionalProperty("SONATYPE_HOST") - } - - internal fun releaseSigningProperty(): Boolean? { - return project.findOptionalProperty("RELEASE_SIGNING_ENABLED")?.toBoolean() - } - - private fun defaultSonatypeHost(): SonatypeHost? { - val property = sonatypeHostProperty() - if (property != null) { - return if (property.isBlank()) { - null - } else { - SonatypeHost.valueOf(property) - } - } - - return SonatypeHost.DEFAULT - } -} diff --git a/plugin/src/main/kotlin/com/vanniktech/maven/publish/ProjectExtensions.kt b/plugin/src/main/kotlin/com/vanniktech/maven/publish/ProjectExtensions.kt index 0289bb87..d5cb5e94 100644 --- a/plugin/src/main/kotlin/com/vanniktech/maven/publish/ProjectExtensions.kt +++ b/plugin/src/main/kotlin/com/vanniktech/maven/publish/ProjectExtensions.kt @@ -8,9 +8,6 @@ import org.gradle.plugins.signing.SigningExtension internal fun Project.findOptionalProperty(propertyName: String) = findProperty(propertyName)?.toString() -internal inline val Project.legacyExtension: MavenPublishPluginExtension - get() = extensions.getByType(MavenPublishPluginExtension::class.java) - internal inline val Project.baseExtension: MavenPublishBaseExtension get() = extensions.getByType(MavenPublishBaseExtension::class.java)