aboutsummaryrefslogtreecommitdiffstats
path: root/build-logic/android-plugins/src/main/kotlin/dev/msfjarvis/aps/gradle/PublishedAndroidLibraryPlugin.kt
diff options
context:
space:
mode:
Diffstat (limited to 'build-logic/android-plugins/src/main/kotlin/dev/msfjarvis/aps/gradle/PublishedAndroidLibraryPlugin.kt')
-rw-r--r--build-logic/android-plugins/src/main/kotlin/dev/msfjarvis/aps/gradle/PublishedAndroidLibraryPlugin.kt40
1 files changed, 40 insertions, 0 deletions
diff --git a/build-logic/android-plugins/src/main/kotlin/dev/msfjarvis/aps/gradle/PublishedAndroidLibraryPlugin.kt b/build-logic/android-plugins/src/main/kotlin/dev/msfjarvis/aps/gradle/PublishedAndroidLibraryPlugin.kt
new file mode 100644
index 00000000..6e9c3d56
--- /dev/null
+++ b/build-logic/android-plugins/src/main/kotlin/dev/msfjarvis/aps/gradle/PublishedAndroidLibraryPlugin.kt
@@ -0,0 +1,40 @@
+@file:Suppress("UnstableApiUsage")
+
+package dev.msfjarvis.aps.gradle
+
+import com.vanniktech.maven.publish.AndroidSingleVariantLibrary
+import com.vanniktech.maven.publish.MavenPublishBaseExtension
+import com.vanniktech.maven.publish.MavenPublishBasePlugin
+import com.vanniktech.maven.publish.SonatypeHost
+import org.gradle.api.Plugin
+import org.gradle.api.Project
+import org.gradle.kotlin.dsl.apply
+import org.gradle.kotlin.dsl.getByType
+import org.gradle.kotlin.dsl.provideDelegate
+import org.gradle.plugins.signing.SigningExtension
+import org.gradle.plugins.signing.SigningPlugin
+
+@Suppress("Unused")
+class PublishedAndroidLibraryPlugin : Plugin<Project> {
+
+ override fun apply(project: Project) {
+ project.plugins.run {
+ apply(LibraryPlugin::class)
+ apply(MavenPublishBasePlugin::class)
+ apply(SigningPlugin::class)
+ }
+ project.extensions.getByType<MavenPublishBaseExtension>().run {
+ publishToMavenCentral(SonatypeHost.DEFAULT)
+ signAllPublications()
+ configure(AndroidSingleVariantLibrary())
+ pomFromGradleProperties()
+ }
+ project.afterEvaluate {
+ project.extensions.getByType<SigningExtension>().run {
+ val signingKey: String? by project
+ val signingPassword: String? by project
+ useInMemoryPgpKeys(signingKey, signingPassword)
+ }
+ }
+ }
+}