diff --git a/.gitignore b/.gitignore index 142389e1..4b1eec44 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ /scripts/publish/_newCreds.properties *.gpg /buildSrc/build +mavenCredentials.properties diff --git a/build.gradle.kts b/build.gradle.kts index e92a2430..65c024c8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -52,4 +52,5 @@ val prCheck by tasks.registering { } apply (from = "$rootDir/scripts/project-dependancy-graph.gradle") -apply (from = "$rootDir/maven-versions.gradle.kts") \ No newline at end of file +apply (from = "$rootDir/maven-versions.gradle.kts") +apply(from = "$rootDir/publishTasks.gradle.kts") \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 68a22bae..9b9c7086 100644 --- a/gradle.properties +++ b/gradle.properties @@ -14,3 +14,23 @@ android.useAndroidX=true kotlin.code.style=official org.gradle.jvmargs=-Xmx2048M -Dkotlin.daemon.jvm.options\="-Xmx2048M" + +# Maven Central publish credentials +mavenCentralUsername=XXXX +mavenCentralPassword=XXXX +signing.keyId=XXXX +signing.password=XXXX +signing.secretKeyRingFile=XXXX + +# Maven Central publish pom details +pom.inceptionYear=2024 +pom.url=https://androidpluto.com +pom.license.name=The Apache Software License, Version 2.0 +pom.license.url=http://www.apache.org/licenses/LICENSE-2.0.txt +pom.developer.id=srtvprateek +pom.developer.name=Prateek Srivastava +pom.developer.email=srtv.prateek@gmail.com +pom.scm.connection=https://github.com/androidPluto/pluto +pom.scm.developerConnection=https://github.com/srtvprateek +pom.scm.url=https://github.com/androidPluto/pluto + diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ae6dbbc5..dbf21494 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ targetSdk = "32" compileSdk = "34" buildTools = "34.0.0" -agp = "8.2.2" +agp = "8.6.0" androidXCore = "1.6.0" androidXLifecycle = "2.8.7" compose = "1.7.7" @@ -23,6 +23,7 @@ navigation = "2.8.6" okhttp = "4.12.0" retrofit = "2.9.0" room = "2.5.1" +mavenPublish = "0.28.0" [plugins] @@ -35,6 +36,7 @@ kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint-plugin" } +maven-publish = { id = "com.vanniktech.maven.publish", version.ref = "mavenPublish"} [libraries] diff --git a/pluto-plugins/base/lib/build.gradle.kts b/pluto-plugins/base/lib/build.gradle.kts index faee1f0b..f60cd850 100644 --- a/pluto-plugins/base/lib/build.gradle.kts +++ b/pluto-plugins/base/lib/build.gradle.kts @@ -1,6 +1,9 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -8,10 +11,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib" -extra["PUBLISH_ARTIFACT_ID"] = "plugin" -extra["PUBLISH_VERSION"] = verPublish - android { namespace = "com.pluto.plugin" resourcePrefix = "pluto___" @@ -54,6 +53,45 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto" +extra["PUBLISH_ARTIFACT_ID"] = "plugin" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto Base Plugin Module" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Open Sourced, on-device debugger for Android apps" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { implementation(libs.androidx.core) implementation(libs.androidx.appcompat) diff --git a/pluto-plugins/bundle/lib-no-op/build.gradle.kts b/pluto-plugins/bundle/lib-no-op/build.gradle.kts index e84c910b..21533d42 100644 --- a/pluto-plugins/bundle/lib-no-op/build.gradle.kts +++ b/pluto-plugins/bundle/lib-no-op/build.gradle.kts @@ -1,6 +1,9 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -8,10 +11,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib.plugins" -extra["PUBLISH_ARTIFACT_ID"] = "bundle-core-no-op" -extra["PUBLISH_VERSION"] = verPublish - android { namespace = "com.pluto.plugins.bundle.core" compileSdk = libs.versions.compileSdk.get().toInt() @@ -49,6 +48,45 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto.plugins" +extra["PUBLISH_ARTIFACT_ID"] = "bundle-core-no-op" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto Plugin Bundle" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Bundle module for Android Pluto plugins" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { api(project(":pluto-plugins:plugins:exceptions:lib-no-op")) api(project(":pluto-plugins:plugins:network:core:lib-no-op")) diff --git a/pluto-plugins/bundle/lib/build.gradle.kts b/pluto-plugins/bundle/lib/build.gradle.kts index 402483e2..cf74dc80 100644 --- a/pluto-plugins/bundle/lib/build.gradle.kts +++ b/pluto-plugins/bundle/lib/build.gradle.kts @@ -1,6 +1,9 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -8,10 +11,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib.plugins" -extra["PUBLISH_ARTIFACT_ID"] = "bundle-core" -extra["PUBLISH_VERSION"] = verPublish - android { namespace = "com.pluto.plugins.bundle.core" compileSdk = libs.versions.compileSdk.get().toInt() @@ -49,6 +48,45 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto.plugins" +extra["PUBLISH_ARTIFACT_ID"] = "bundle-core" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto Plugin Bundle" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Bundle module for Android Pluto plugins" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { api(project(":pluto-plugins:plugins:exceptions:lib")) api(project(":pluto-plugins:plugins:network:core:lib")) diff --git a/pluto-plugins/plugins/datastore/lib-no-op/build.gradle.kts b/pluto-plugins/plugins/datastore/lib-no-op/build.gradle.kts index e4f7c691..f1bb514c 100644 --- a/pluto-plugins/plugins/datastore/lib-no-op/build.gradle.kts +++ b/pluto-plugins/plugins/datastore/lib-no-op/build.gradle.kts @@ -1,6 +1,9 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -8,10 +11,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib.plugins" -extra["PUBLISH_ARTIFACT_ID"] = "datastore-pref-no-op" -extra["PUBLISH_VERSION"] = verPublish - android { namespace = "com.pluto.plugins.datastore.pref" @@ -49,7 +48,45 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto.plugins" +extra["PUBLISH_ARTIFACT_ID"] = "datastore-pref-no-op" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto Datastore Preferences Plugin" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Plugin to manage Datastore preferences in Android Pluto" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { - implementation(libs.androidx.core) implementation(libs.datastore.preferences) } diff --git a/pluto-plugins/plugins/datastore/lib/build.gradle.kts b/pluto-plugins/plugins/datastore/lib/build.gradle.kts index bdbe9d83..f043022d 100644 --- a/pluto-plugins/plugins/datastore/lib/build.gradle.kts +++ b/pluto-plugins/plugins/datastore/lib/build.gradle.kts @@ -1,6 +1,9 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -8,10 +11,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib.plugins" -extra["PUBLISH_ARTIFACT_ID"] = "datastore-pref" -extra["PUBLISH_VERSION"] = verPublish - android { namespace = "com.pluto.plugins.datastore.pref" resourcePrefix = "pluto_dts___" @@ -60,6 +59,45 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto.plugins" +extra["PUBLISH_ARTIFACT_ID"] = "datastore-pref" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto Datastore Preferences Plugin" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Plugin to manage Datastore preferences in Android Pluto" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { implementation(project(":pluto-plugins:base:lib")) diff --git a/pluto-plugins/plugins/exceptions/lib-no-op/build.gradle.kts b/pluto-plugins/plugins/exceptions/lib-no-op/build.gradle.kts index 3aff0396..04cdf756 100644 --- a/pluto-plugins/plugins/exceptions/lib-no-op/build.gradle.kts +++ b/pluto-plugins/plugins/exceptions/lib-no-op/build.gradle.kts @@ -1,6 +1,9 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -8,10 +11,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib.plugins" -extra["PUBLISH_ARTIFACT_ID"] = "exceptions-no-op" -extra["PUBLISH_VERSION"] = verPublish - android { namespace = "com.pluto.plugins.exceptions" @@ -49,6 +48,44 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto.plugins" +extra["PUBLISH_ARTIFACT_ID"] = "exceptions-no-op" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto Exceptions Plugin" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Plugin to capture expections & ANRs in Android Pluto" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { - implementation(libs.androidx.core) } diff --git a/pluto-plugins/plugins/exceptions/lib/build.gradle.kts b/pluto-plugins/plugins/exceptions/lib/build.gradle.kts index 92e027e7..bb6085b9 100644 --- a/pluto-plugins/plugins/exceptions/lib/build.gradle.kts +++ b/pluto-plugins/plugins/exceptions/lib/build.gradle.kts @@ -1,8 +1,11 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.parcelize) alias(libs.plugins.ksp) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -10,10 +13,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib.plugins" -extra["PUBLISH_ARTIFACT_ID"] = "exceptions" -extra["PUBLISH_VERSION"] = verPublish - android { namespace = "com.pluto.plugins.exceptions" resourcePrefix = "pluto_excep___" @@ -57,6 +56,45 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto.plugins" +extra["PUBLISH_ARTIFACT_ID"] = "exceptions" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto Exceptions Plugin" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Plugin to capture expections & ANRs in Android Pluto" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { implementation(project(":pluto-plugins:base:lib")) diff --git a/pluto-plugins/plugins/layout-inspector/lib-no-op/build.gradle.kts b/pluto-plugins/plugins/layout-inspector/lib-no-op/build.gradle.kts index d4b87562..f5ea5f2e 100644 --- a/pluto-plugins/plugins/layout-inspector/lib-no-op/build.gradle.kts +++ b/pluto-plugins/plugins/layout-inspector/lib-no-op/build.gradle.kts @@ -1,6 +1,9 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -8,10 +11,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib.plugins" -extra["PUBLISH_ARTIFACT_ID"] = "layout-inspector-no-op" -extra["PUBLISH_VERSION"] = verPublish - android { namespace = "com.pluto.plugins.layoutinspector" @@ -49,6 +48,44 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto.plugins" +extra["PUBLISH_ARTIFACT_ID"] = "layout-inspector-no-op" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto Layout inspector Plugin" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Plugin to modify screen layout in Android Pluto" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { - implementation(libs.androidx.core) } diff --git a/pluto-plugins/plugins/layout-inspector/lib/build.gradle.kts b/pluto-plugins/plugins/layout-inspector/lib/build.gradle.kts index bb7783f1..d522e4c4 100644 --- a/pluto-plugins/plugins/layout-inspector/lib/build.gradle.kts +++ b/pluto-plugins/plugins/layout-inspector/lib/build.gradle.kts @@ -1,6 +1,9 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -8,10 +11,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib.plugins" -extra["PUBLISH_ARTIFACT_ID"] = "layout-inspector" -extra["PUBLISH_VERSION"] = verPublish - android { namespace = "com.pluto.plugins.layoutinspector" resourcePrefix = "pluto_li___" @@ -55,6 +54,45 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto.plugins" +extra["PUBLISH_ARTIFACT_ID"] = "layout-inspector" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto Layout inspector Plugin" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Plugin to modify screen layout in Android Pluto" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { implementation(project(":pluto-plugins:base:lib")) diff --git a/pluto-plugins/plugins/logger/lib-no-op/build.gradle.kts b/pluto-plugins/plugins/logger/lib-no-op/build.gradle.kts index 0d4f6b66..b94d835f 100644 --- a/pluto-plugins/plugins/logger/lib-no-op/build.gradle.kts +++ b/pluto-plugins/plugins/logger/lib-no-op/build.gradle.kts @@ -1,6 +1,10 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) + + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -8,10 +12,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib.plugins" -extra["PUBLISH_ARTIFACT_ID"] = "logger-no-op" -extra["PUBLISH_VERSION"] = verPublish - android { namespace = "com.pluto.plugins.logger" @@ -49,7 +49,45 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto.plugins" +extra["PUBLISH_ARTIFACT_ID"] = "logger-no-op" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto Logger Plugin" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Plugin to monitor logs in Android Pluto" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { - implementation(libs.androidx.core) api(libs.timber) } diff --git a/pluto-plugins/plugins/logger/lib/build.gradle.kts b/pluto-plugins/plugins/logger/lib/build.gradle.kts index be63dbee..a1d09d09 100644 --- a/pluto-plugins/plugins/logger/lib/build.gradle.kts +++ b/pluto-plugins/plugins/logger/lib/build.gradle.kts @@ -1,8 +1,11 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.parcelize) alias(libs.plugins.ksp) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -10,10 +13,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib.plugins" -extra["PUBLISH_ARTIFACT_ID"] = "logger" -extra["PUBLISH_VERSION"] = verPublish - android { resourcePrefix = "pluto_logger___" namespace = "com.pluto.plugins.logger" @@ -57,6 +56,45 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto.plugins" +extra["PUBLISH_ARTIFACT_ID"] = "logger" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto Logger Plugin" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Plugin to monitor logs in Android Pluto" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { implementation(project(":pluto-plugins:base:lib")) implementation(libs.androidx.navigation.ui) diff --git a/pluto-plugins/plugins/network/core/lib-no-op/build.gradle.kts b/pluto-plugins/plugins/network/core/lib-no-op/build.gradle.kts index 65bf966f..3973c149 100644 --- a/pluto-plugins/plugins/network/core/lib-no-op/build.gradle.kts +++ b/pluto-plugins/plugins/network/core/lib-no-op/build.gradle.kts @@ -1,6 +1,9 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -8,10 +11,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib.plugins" -extra["PUBLISH_ARTIFACT_ID"] = "network-no-op" -extra["PUBLISH_VERSION"] = verPublish - android { namespace = "com.pluto.plugins.network" @@ -49,5 +48,44 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto.plugins" +extra["PUBLISH_ARTIFACT_ID"] = "network-no-op" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto Network Plugin" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Plugin to monitor network calls in Android Pluto" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { } diff --git a/pluto-plugins/plugins/network/core/lib/build.gradle.kts b/pluto-plugins/plugins/network/core/lib/build.gradle.kts index 38e27540..b69f2c95 100644 --- a/pluto-plugins/plugins/network/core/lib/build.gradle.kts +++ b/pluto-plugins/plugins/network/core/lib/build.gradle.kts @@ -1,8 +1,11 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.parcelize) alias(libs.plugins.ksp) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -10,10 +13,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib.plugins" -extra["PUBLISH_ARTIFACT_ID"] = "network" -extra["PUBLISH_VERSION"] = verPublish - android { resourcePrefix = "pluto_network___" namespace = "com.pluto.plugins.network" @@ -57,8 +56,46 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto.plugins" +extra["PUBLISH_ARTIFACT_ID"] = "network" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto Network Plugin" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Plugin to monitor network calls in Android Pluto" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { -// implementation 'com.plutolib:plugin:2.0.0' implementation(project(":pluto-plugins:base:lib")) implementation(libs.androidx.core) diff --git a/pluto-plugins/plugins/network/interceptor-ktor/lib-no-op/build.gradle.kts b/pluto-plugins/plugins/network/interceptor-ktor/lib-no-op/build.gradle.kts index a21e7c33..68a47a80 100644 --- a/pluto-plugins/plugins/network/interceptor-ktor/lib-no-op/build.gradle.kts +++ b/pluto-plugins/plugins/network/interceptor-ktor/lib-no-op/build.gradle.kts @@ -1,6 +1,9 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -8,10 +11,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib.plugins" -extra["PUBLISH_ARTIFACT_ID"] = "network-interceptor-ktor-no-op" -extra["PUBLISH_VERSION"] = verPublish - android { namespace = "com.pluto.plugins.network.ktor" @@ -49,6 +48,45 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto.plugins" +extra["PUBLISH_ARTIFACT_ID"] = "network-interceptor-ktor-no-op" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto Network Ktor Plugin" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Plugin to monitor ktor network calls in Android Pluto" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { implementation(libs.ktor.client.core.jvm) } diff --git a/pluto-plugins/plugins/network/interceptor-ktor/lib/build.gradle.kts b/pluto-plugins/plugins/network/interceptor-ktor/lib/build.gradle.kts index 6a3c7dda..21ae9a71 100644 --- a/pluto-plugins/plugins/network/interceptor-ktor/lib/build.gradle.kts +++ b/pluto-plugins/plugins/network/interceptor-ktor/lib/build.gradle.kts @@ -1,8 +1,11 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.parcelize) alias(libs.plugins.ksp) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -10,10 +13,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib.plugins" -extra["PUBLISH_ARTIFACT_ID"] = "network-interceptor-ktor" -extra["PUBLISH_VERSION"] = verPublish - android { resourcePrefix = "pluto_network___" namespace = "com.pluto.plugins.network.ktor" @@ -57,6 +56,45 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto.plugins" +extra["PUBLISH_ARTIFACT_ID"] = "network-interceptor-ktor" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto Network Ktor Plugin" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Plugin to monitor ktor network calls in Android Pluto" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { implementation(project(":pluto-plugins:plugins:network:core:lib")) diff --git a/pluto-plugins/plugins/network/interceptor-okhttp/lib-no-op/build.gradle.kts b/pluto-plugins/plugins/network/interceptor-okhttp/lib-no-op/build.gradle.kts index 13ed9dfe..979da1d1 100644 --- a/pluto-plugins/plugins/network/interceptor-okhttp/lib-no-op/build.gradle.kts +++ b/pluto-plugins/plugins/network/interceptor-okhttp/lib-no-op/build.gradle.kts @@ -1,6 +1,9 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -8,10 +11,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib.plugins" -extra["PUBLISH_ARTIFACT_ID"] = "network-interceptor-okhttp-no-op" -extra["PUBLISH_VERSION"] = verPublish - android { namespace = "com.pluto.plugins.network.okhttp" @@ -49,7 +48,45 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto.plugins" +extra["PUBLISH_ARTIFACT_ID"] = "network-interceptor-okhttp-no-op" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto Network Okhttp Plugin" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Plugin to monitor okhttp network calls in Android Pluto" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { -// implementation(libs.androidx.core) implementation(libs.okhttp) } diff --git a/pluto-plugins/plugins/network/interceptor-okhttp/lib/build.gradle.kts b/pluto-plugins/plugins/network/interceptor-okhttp/lib/build.gradle.kts index fbac6bfb..cc87974c 100644 --- a/pluto-plugins/plugins/network/interceptor-okhttp/lib/build.gradle.kts +++ b/pluto-plugins/plugins/network/interceptor-okhttp/lib/build.gradle.kts @@ -1,6 +1,9 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -8,10 +11,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib.plugins" -extra["PUBLISH_ARTIFACT_ID"] = "network-interceptor-okhttp" -extra["PUBLISH_VERSION"] = verPublish - android { resourcePrefix = "pluto_network___" namespace = "com.pluto.plugins.network.okhttp" @@ -55,8 +54,46 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto.plugins" +extra["PUBLISH_ARTIFACT_ID"] = "network-interceptor-okhttp" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto Network Okhttp Plugin" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Plugin to monitor okhttp network calls in Android Pluto" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { -// implementation 'com.plutolib:plugin:2.0.0' implementation(project(":pluto-plugins:base:lib")) implementation(project(":pluto-plugins:plugins:network:core:lib")) diff --git a/pluto-plugins/plugins/rooms-database/lib-no-op/build.gradle.kts b/pluto-plugins/plugins/rooms-database/lib-no-op/build.gradle.kts index da58617b..0c18f250 100644 --- a/pluto-plugins/plugins/rooms-database/lib-no-op/build.gradle.kts +++ b/pluto-plugins/plugins/rooms-database/lib-no-op/build.gradle.kts @@ -1,6 +1,9 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -8,10 +11,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib.plugins" -extra["PUBLISH_ARTIFACT_ID"] = "rooms-db-no-op" -extra["PUBLISH_VERSION"] = verPublish - android { namespace = "com.pluto.plugins.rooms.db" @@ -49,6 +48,44 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto.plugins" +extra["PUBLISH_ARTIFACT_ID"] = "rooms-db-no-op" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto Rooms DB Plugin" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Plugin to manage & alter Rooms database in Android Pluto" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { - implementation(libs.androidx.core) } diff --git a/pluto-plugins/plugins/rooms-database/lib/build.gradle.kts b/pluto-plugins/plugins/rooms-database/lib/build.gradle.kts index 65ec7860..284b5b28 100644 --- a/pluto-plugins/plugins/rooms-database/lib/build.gradle.kts +++ b/pluto-plugins/plugins/rooms-database/lib/build.gradle.kts @@ -1,8 +1,11 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.parcelize) alias(libs.plugins.ksp) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -10,10 +13,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib.plugins" -extra["PUBLISH_ARTIFACT_ID"] = "rooms-db" -extra["PUBLISH_VERSION"] = verPublish - android { resourcePrefix = "pluto_rooms___" namespace = "com.pluto.plugins.rooms.db" @@ -57,6 +56,45 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto.plugins" +extra["PUBLISH_ARTIFACT_ID"] = "rooms-db" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto Rooms DB Plugin" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Plugin to manage & alter Rooms database in Android Pluto" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { implementation(project(":pluto-plugins:base:lib")) diff --git a/pluto-plugins/plugins/shared-preferences/lib-no-op/build.gradle.kts b/pluto-plugins/plugins/shared-preferences/lib-no-op/build.gradle.kts index b4b59647..8eb4257e 100644 --- a/pluto-plugins/plugins/shared-preferences/lib-no-op/build.gradle.kts +++ b/pluto-plugins/plugins/shared-preferences/lib-no-op/build.gradle.kts @@ -1,6 +1,9 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -8,10 +11,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib.plugins" -extra["PUBLISH_ARTIFACT_ID"] = "preferences-no-op" -extra["PUBLISH_VERSION"] = verPublish - android { namespace = "com.pluto.plugins.preferences" @@ -49,6 +48,44 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto.plugins" +extra["PUBLISH_ARTIFACT_ID"] = "preferences-no-op" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto Shared Preferences Plugin" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Plugin to manager Shared Preferences in Android Pluto" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { - implementation(libs.androidx.core) } diff --git a/pluto-plugins/plugins/shared-preferences/lib/build.gradle.kts b/pluto-plugins/plugins/shared-preferences/lib/build.gradle.kts index c83b54e4..f013caba 100644 --- a/pluto-plugins/plugins/shared-preferences/lib/build.gradle.kts +++ b/pluto-plugins/plugins/shared-preferences/lib/build.gradle.kts @@ -1,7 +1,10 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) alias(libs.plugins.ksp) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -9,10 +12,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib.plugins" -extra["PUBLISH_ARTIFACT_ID"] = "preferences" -extra["PUBLISH_VERSION"] = verPublish - android { resourcePrefix = "pluto_pref___" namespace = "com.pluto.plugins.preferences" @@ -56,8 +55,46 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto.plugins" +extra["PUBLISH_ARTIFACT_ID"] = "preferences" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto Shared Preferences Plugin" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Plugin to manager Shared Preferences in Android Pluto" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { -// implementation 'com.plutolib:plugin:2.0.0' implementation(project(":pluto-plugins:base:lib")) implementation(libs.androidx.core) implementation(libs.androidx.navigation.ui) diff --git a/pluto/lib-no-op/build.gradle.kts b/pluto/lib-no-op/build.gradle.kts index 3e2454a6..702efb9a 100644 --- a/pluto/lib-no-op/build.gradle.kts +++ b/pluto/lib-no-op/build.gradle.kts @@ -1,6 +1,9 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -8,10 +11,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib" -extra["PUBLISH_ARTIFACT_ID"] = "pluto-no-op" -extra["PUBLISH_VERSION"] = verPublish - android { namespace = "com.pluto" compileSdk = libs.versions.compileSdk.get().toInt() @@ -53,6 +52,45 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto" +extra["PUBLISH_ARTIFACT_ID"] = "pluto-no-op" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Open Sourced, on-device debugger for Android apps" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { implementation(libs.androidx.core) } diff --git a/pluto/lib/build.gradle.kts b/pluto/lib/build.gradle.kts index 840ac917..4e91d955 100644 --- a/pluto/lib/build.gradle.kts +++ b/pluto/lib/build.gradle.kts @@ -1,7 +1,10 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) alias(libs.plugins.ksp) + alias(libs.plugins.maven.publish) } val version = Versioning.loadVersioningData() @@ -9,10 +12,6 @@ val verCode = version["code"] as Int val verPublish = version["publish"] as String val verGitSHA = version["gitSha"] as String -extra["PUBLISH_GROUP_ID"] = "com.plutolib" -extra["PUBLISH_ARTIFACT_ID"] = "pluto" -extra["PUBLISH_VERSION"] = verPublish - android { namespace = "com.pluto" resourcePrefix = "pluto___" @@ -55,6 +54,45 @@ android { } } +extra["PUBLISH_GROUP_ID"] = "com.androidpluto" +extra["PUBLISH_ARTIFACT_ID"] = "pluto" +extra["PUBLISH_ARTIFACT_NAME"] = "Android Pluto" +extra["PUBLISH_ARTIFACT_DESCRIPTION"] = "Open Sourced, on-device debugger for Android apps" + +mavenPublishing { + coordinates( + groupId = extra["PUBLISH_GROUP_ID"] as String, + artifactId = extra["PUBLISH_ARTIFACT_ID"] as String, + version = verPublish + ) + pom { + name.set(extra["PUBLISH_ARTIFACT_NAME"] as String) + description.set(extra["PUBLISH_ARTIFACT_DESCRIPTION"] as String) + inceptionYear.set(project.findProperty("pom.inceptionYear") as? String) + url.set(project.findProperty("pom.url") as? String) + licenses { + license { + name.set(project.findProperty("pom.license.name") as? String) + url.set(project.findProperty("pom.license.url") as? String) + } + } + developers { + developer { + id.set(project.findProperty("pom.developer.id") as? String) + name.set(project.findProperty("pom.developer.name") as? String) + email.set(project.findProperty("pom.developer.email") as? String) + } + } + scm { + connection.set(project.findProperty("pom.scm.connection") as? String) + developerConnection.set(project.findProperty("pom.scm.developerConnection") as? String) + url.set(project.findProperty("pom.scm.url") as? String) + } + } + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() +} + dependencies { api(project(":pluto-plugins:base:lib")) diff --git a/pluto/lib/src/main/java/com/pluto/maven/MavenApiService.kt b/pluto/lib/src/main/java/com/pluto/maven/MavenApiService.kt index fb0ae820..41455cff 100644 --- a/pluto/lib/src/main/java/com/pluto/maven/MavenApiService.kt +++ b/pluto/lib/src/main/java/com/pluto/maven/MavenApiService.kt @@ -4,6 +4,6 @@ import retrofit2.http.GET internal interface MavenApiService { - @GET("https://search.maven.org/solrsearch/select?q=g:com.plutolib+AND+a:pluto") + @GET("https://search.maven.org/solrsearch/select?q=g:com.androidpluto+AND+a:pluto") suspend fun getLatestVersion(): MavenData } diff --git a/publishTasks.gradle.kts b/publishTasks.gradle.kts new file mode 100644 index 00000000..e35a381a --- /dev/null +++ b/publishTasks.gradle.kts @@ -0,0 +1,56 @@ +import java.util.Properties + +/** + * Usage + * ./gradlew publishOnMavenCentral -PshouldRelease=false + * + * shouldRelease=true will publish & release the build. no manual intervention needed + * shouldRelease=false will only publish the build, need to manually release from https://central.sonatype.com/publishing/deployments + */ +tasks.register("publishOnMavenCentral") { + val shouldRelease = project.findProperty("shouldRelease")?.toString()?.toBoolean() ?: false + + doLast { + val gradleFile = file("$rootDir/gradle.properties") + val credentialsFile = file("$rootDir/mavenCredentials.properties") + + if (!credentialsFile.exists()) { + throw GradleException("❌ Credential file not found: $credentialsFile") + } + + // Read existing gradle.properties content into a mutable map + val gradleProperties = Properties().apply { load(gradleFile.inputStream()) }.toMutableMap() + + // Read credentials from credential.properties + val credentials = Properties().apply { load(credentialsFile.inputStream()) } + + // Backup original gradle.properties content + val originalContent = gradleFile.readText() + + // Override common keys & keep non-overlapping keys untouched + credentials.forEach { (key, value) -> gradleProperties[key.toString()] = value.toString() } + gradleProperties["signing.secretKeyRingFile"] = "$rootDir/secring.gpg" + + // Write updated gradle.properties back to file + gradleFile.writer().use { writer -> + gradleProperties.forEach { (key, value) -> writer.write("$key=$value\n") } + } + + try { + val releaseCommand = + if (shouldRelease) "publishAndReleaseToMavenCentral" else "publishToMavenCentral" + val releaseCommandMessage = if (shouldRelease) "Publish & Release" else "Publish" + // Run the Gradle publish command + println("🔹 Running Gradle publish task : $releaseCommandMessage") + project.exec { + commandLine("./gradlew", releaseCommand, "--no-configuration-cache") + } + println("✅ $releaseCommandMessage successful!") + println("Validate the deployment at https://central.sonatype.com/publishing/deployments") + } finally { + // Revert gradle.properties to original state + println("🔄 Reverting gradle.properties...") + gradleFile.writeText(originalContent) + } + } +} diff --git a/sample/build.gradle.kts b/sample/build.gradle.kts index 882a7535..427a2253 100644 --- a/sample/build.gradle.kts +++ b/sample/build.gradle.kts @@ -83,19 +83,19 @@ dependencies { "debugImplementation"(project(":pluto-plugins:bundle:lib")) /* Maven Op dependencies */ - "debugMavenImplementation"("com.plutolib:pluto:$verPublish") - "debugMavenImplementation"("com.plutolib.plugins:bundle-core:$verPublish") + "debugMavenImplementation"("com.androidpluto:pluto:$verPublish") + "debugMavenImplementation"("com.androidpluto.plugins:bundle-core:$verPublish") /* Local NoOp dependencies */ "debugNoOpImplementation"(project(":pluto:lib-no-op")) "debugNoOpImplementation"(project(":pluto-plugins:bundle:lib-no-op")) /* Maven NoOp dependencies */ - "debugNoOpMavenImplementation"("com.plutolib:pluto-no-op:$verPublish") - "debugNoOpMavenImplementation"("com.plutolib.plugins:bundle-core-no-op:$verPublish") + "debugNoOpMavenImplementation"("com.androidpluto:pluto-no-op:$verPublish") + "debugNoOpMavenImplementation"("com.androidpluto.plugins:bundle-core-no-op:$verPublish") - "releaseImplementation"("com.plutolib:pluto:$verPublish") - "releaseImplementation"("com.plutolib.plugins:bundle-core:$verPublish") + "releaseImplementation"("com.androidpluto:pluto:$verPublish") + "releaseImplementation"("com.androidpluto.plugins:bundle-core:$verPublish") /** * Other dependencies