Cómo usar el complemento de Maven Publish

El complemento de Gradle para Android 3.6.0 y versiones posteriores incluye compatibilidad con el complemento de Gradle para Maven Publish, que te permite publicar artefactos de compilación en un repositorio de Maven de Apache. El complemento de Gradle para Android crea un componente para cada artefacto de variante de compilación en tu app o módulo de biblioteca que puedes usar para personalizar una publicación en un repositorio de Maven.

Los componentes que crea el complemento para Android dependen de si el módulo usa el complemento de la aplicación o la biblioteca, como se describe en la siguiente tabla.

Complemento de Gradle para Android Artefacto de publicación Nombre del componente
com.android.library AAR components.variant
com.android.application Un ZIP de APK y archivos de asignaciones ProGuard o R8 disponibles components.variant_apk
com.android.application Un Android App Bundle (AAB) components.variant_aab

En la siguiente muestra de código, se crea una publicación para las variantes de compilación de depuración y actualización de una biblioteca de AAR. Cada publicación aplica el componente de coincidencia y personaliza los atributos del POM generado, como las coordenadas de Maven.

// Because the components are created only during the afterEvaluate phase, you must
    // configure your publications using the afterEvaluate() lifecycle method.
    afterEvaluate {
        publishing {
            publications {
                // Creates a Maven publication called "release".
                release(MavenPublication) {
                    // Applies the component for the release build variant.
                    from components.release

                    // You can then customize attributes of the publication as shown below.
                    groupId = 'com.example.MyLibrary'
                    artifactId = 'final'
                    version = '1.0'
                }
                // Creates a Maven publication called “debug”.
                debug(MavenPublication) {
                    // Applies the component for the debug build variant.
                    from components.debug

                    groupId = 'com.example.MyLibrary'
                    artifactId = 'final-debug'
                    version = '1.0'
                }
            }
        }
    

Para crear una publicación que publique tu app como un archivo ZIP de APK o un Android App Bundle (AAB), usa el componente adecuado, como se muestra a continuación.

afterEvaluate {
        publishing {
            publications {
                paidRelease(MavenPublication) {
                  // The following applies a component to this publication
                  // which results in publishing an app bundle.
                  from components.paidRelease_aab

                  groupId = 'com.example.MyApp'
                  artifactId = 'paid-release-aab'
                  version = '1.0'
                }
                paidDebug(MavenPublication) {
                  // The following applies a component to this publication
                  // which results in publishing APKs in a ZIP file.
                  from components.paidDebug_apk

                  groupId = 'com.example.MyApp'
                  artifactId = 'paid-debug-apks'
                  version = '1.0'
                }
            }
        }
    

Después de crear publicaciones, el complemento de Maven Publish crea tareas de publicación que puedes usar para publicar tu artefacto en los repositorios que especifiques.