Después de probar jitpack, escogí maven central, por dos limitantes principales:
– Demoro mas de 1 día en publicar una librería
– No soporta subdominios en el paquete
– Permite mas personalización
Nota:
En esta entrada se usa un grupoid con un dominio personalizado, y un servidor propio, por tenerlo a mano y ser práctico, no explore la opción con solo tener github, pero estimo que los pasos de registro deben diferir, y los pasos de publicarlo deben ser los mismos.( revisar en referencias, esta al documentación de como comprobar que es su repositorio)
Primero preparare la ficha de registro, ya que la revisión puede demorar.
Crear una cuenta en issues.sonatype.org
https://issues.sonatype.org/secure/Signup!default.jspa
Crear un nuevo proyecto desde el link https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134



*Mientras revisan la solicitud, creamos el repositorio.
Llegará un correo indicando la actualización de la incidencia, en este caso, nos dice que debemos registrar una entrada al DNS de tipo TXT para comprobar que soy dueño del dominio

Dependiendo del servidor propio o publico ( en publico como github.com u otros varía el método de comprobación, ver REFERENCIAS e INICIO DE LA ENTRADA)

Demora unos minutos en propagar el cambio, para comprobar si esta listo puede usar los siguientes comandos
% host -t txt javiersolis.dev % dig javiersolis.dev txt
Si esta ok, debe aparecer la respuesta algo como
javiersolis.dev descriptive text "OSSRH-77466"
Ir a la incidencia y comentar para reabrir el tycket, cambiara a estado “ABIERTO”
Luego esperar, si todo va bien, confirmara que se comprobó el dominio

Contenido
Configuración de la Librería
Creamos la aplicación android, y la librería como siempre.
A tener en cuenta, si la librería es com.domain.lib, al registrar la aplicación indicar el paquete como com.domain.lib.example para poder diferenciarlos.
Siguiendo los pasos del plugin https://github.com/vanniktech/gradle-maven-publish-plugin.
Agregar el classpath en build.gradle de app
classpath 'com.vanniktech:gradle-maven-publish-plugin:0.18.0' // NEW
Agregar el plugin en build.gradle en el modulo de la librería
apply plugin: 'com.vanniktech.maven.publish' // NEW
Cuando el proyecto sea aprobado el link al gestor de repositorio asignado podría tener un subdomio: https://s01.oss.sonatype.org/, para que el plugin lo suba en esa dirección, se puede configurar , agregando en build.gradle del modulo de librería
allprojects { plugins.withId("com.vanniktech.maven.publish") { mavenPublish { sonatypeHost = "S01" } } }
En settings.gradle modificamos el repositoriesMode
repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
En setting.gradle editar los datos
GROUP=com.test.mylibrary POM_ARTIFACT_ID=mylibrary-runtime VERSION_NAME=3.0.5 POM_NAME=My Library POM_DESCRIPTION=A description of what my library does. POM_INCEPTION_YEAR=2020 POM_URL=https://github.com/username/mylibrary/ POM_LICENSE_NAME=The Apache Software License, Version 2.0 POM_LICENSE_URL=https://www.apache.org/licenses/LICENSE-2.0.txt POM_LICENSE_DIST=repo POM_SCM_URL=https://github.com/username/mylibrary/ POM_SCM_CONNECTION=scm:git:git://github.com/username/mylibrary.git POM_SCM_DEV_CONNECTION=scm:git:ssh://git@github.com/username/mylibrary.git POM_DEVELOPER_ID=username POM_DEVELOPER_NAME=User Name POM_DEVELOPER_URL=https://github.com/username/
Se requiere tener las credenciales al maven central y una llave gpg
Instalar gpg , https://blog.ghostinthemachines.com/2015/03/01/how-to-use-gpg-command-line/
en MAC:
brew install gnupg
Una vez creada la llave necesitara subirla a los servidores, para eso instalar el gpg suite, descargar desde https://gpgtools.org/

Abrir el programa y dar click en “nueva”


Cuando termine , click, en subir clave publica, si no se hace, en el ultimo paso saldrá un error por no poder validar la clave

ir a la carpeta y exportar la clave secreta, pedira la frase/contraseña, llenar y darle en OK
cd ~/.gnupg/openpgp-revocs.d/ gpg --export-secret-keys -o secring.gpg
Con esto terminado podemos configurar la firma, como indica el repositorio del plugin de publicación ( https://github.com/vanniktech/gradle-maven-publish-plugin#signing) podemos tener un gradle generico, pero si tengo diferentes proyectos podría ser un problema, por eso agregare el archivo gradle.propertis a nivel de la librería, no se subira al repo porque estar en gitignore
signing.keyId=<últimos 8 caracteres> signing.password=<clave de la llave> signing.secretKeyRingFile=<ruta al archivo secreto exportado>.gpg

Con esto debería estar terminado la configuración de la aplicación, si termino el registro del dominio ya podemos usar el comando para publicarlo
./gradlew publish --no-daemon --no-parallel --stacktrace
Publicar
Correr el comando de publicación, debe terminar con un BUILD SUCCESSFUL
% ./gradlew publish --no-daemon --no-parallel --stacktrace To honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/7.0.2/userguide/gradle_daemon.html#sec:disabling_the_daemon. Daemon will be stopped at the end of the build Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0. Use '--warning-mode all' to show the individual deprecation warnings. See https://docs.gradle.org/7.0.2/userguide/command_line_interface.html#sec:command_line_warnings BUILD SUCCESSFUL in 29s
Iniciar sesión en https://s01.oss.sonatype.org/#welcome, según el comentario en la incidencia

En el menu, click en staging repositories , luego seleccionar el repositorio que se subio y click en close

Luego click en confirmar

En la parte inferior hay un tab “Activity”, donde debemos ir consultando para poder ver el avance, hasta que confirme con Repository Closed

Entonces podemos hacer click en release para terminar de publicar

Luego click en confirmar

Si refrescamos veremos que el repositorio ya no aparece, ya podemos intentar usarlo en algún proyecto ( luego de 10-15 min) , para mi repositorio de ejemplo, sería
implementation 'dev.javiersolis.android:architecture-application:0.0.1'
también podemos intentar buscarlo en search maven https://search.maven.org/search?q=dev.javiersolis , aunque para aparecer ahi puede demorar un poco mas ( 4 horas), estos avisas se ven el el tycket de solicitud y se envía actualizaciones al corren con el cual se registro

Y listo.
No olvidar revisar las referencias, extraje solo la información que necesite y los problemas que ocurrió, pero hay mas detalles.
Referencias
Variables de entorno
https://phoenixnap.com/kb/set-environment-variable-mac
Entrada de referencia, pero falta actualizar y algunos pasos
https://www.waseefakhtar.com/android/publishing-your-first-android-library-to-mavencentral/
Porque aparece la fecha de expiración de licencia
https://issues.sonatype.org/browse/OSSRH-63222
2da entrada de referencia
https://getstream.io/blog/publishing-libraries-to-mavencentral-2021/
Para ver un commit en especifico se puede armar la ruta <github>/user/project/commit/revision number
https://github.com/javiersolis/android-architecture-application/commit/9008f0f2c0d469da0f6d427a2539003ec5d4d4fc
Los datos del repositorio a subir debe ser el mismo que se registro en la solicitud
https://issues.sonatype.org/browse/OSSRH-68283
Directorio de archivos de repositorios maven
https://repo1.maven.org/maven2/
Ticket ejemplo de nuevo proyecto
https://issues.sonatype.org/browse/OSSRH-77374
Buscador de repositorios
https://search.maven.org/search
Instalar GPG para las llaves de firma
https://blog.ghostinthemachines.com/2015/03/01/how-to-use-gpg-command-line/
Arreglar el error prefer settings
Caused by: org.gradle.api.InvalidUserCodeException: Build was configured to prefer settings repositories over project repositories but repository 'maven' was added by build file 'build.gradle'
Agregando en settings.gradle
repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
https://stackoverflow.com/a/69951831
No usar el comando “UploadArchives”, se cambio por “publish” según el changelog
https://github.com/vanniktech/gradle-maven-publish-plugin/blob/3b0d49a9a94ad58af74f0427c8ed618d04dd6b10/CHANGELOG.md#version-0170-2021-07-04
Plugin de publicación en maven
https://github.com/vanniktech/gradle-maven-publish-plugin
Maven local
(~/.m2/repository
) publishToMavenLocal
.
(*) En caso usar un repositorio gratuito, la forma de comprobar que le pertenece el repositorio, puede seguir los pasos indicados en
https://central.sonatype.org/publish/requirements/coordinates/
天有不测,及时享乐!