Configura la autenticación en Artifact Registry para Maven y Gradle

Debes autenticarte en Artifact Registry cuando uses una aplicación de terceros para conectarte a un repositorio de Artifact Registry. Esta documentación se enfoca en la configuración de Maven y Gradle.

No es necesario que configures la autenticación para los entornos de ejecución de Cloud Build o Google Cloud, como Google Kubernetes Engine y Cloud Run, pero debes verificar que estén configurados los permisos necesarios. Para obtener más información, consulta la información sobre Cloud Build y la implementación en entornos de ejecución de Google Cloud.

Antes de comenzar

  1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

    gcloud init
  2. (Opcional) Configura valores predeterminados para los comandos de gcloud.
  3. Si configuras la autenticación con un repositorio estándar, verifica la política de la versión para que puedas configurar tu proyecto de Maven de manera correcta para los tipos de paquetes de Java que puedes subir.

    Console

    1. Abre la página Repositorios en la consola de Google Cloud.

      Abrir la página Repositorios

    2. Haz clic en el repositorio en el que quieres autenticarte.

      En la sección Detalles, se muestra la política de la versión. Si el repositorio tiene una política de versión de instantáneas, el campo Permitir reemplazos de instantáneas indica si las instantáneas pueden reemplazar versiones de instantáneas coincidentes en el repositorio.

    gcloud

    Ejecuta el siguiente comando para ver una descripción de un repositorio.

    gcloud artifacts repositories describe REPOSITORY \
          --project=PROJECT \
          --location=LOCATION
    

    ¿Por dónde

    • REPOSITORY es el ID del repositorio. Si configuraste un repositorio predeterminado de Artifact Registry, se usa cuando se omite esta marca del comando.
    • PROJECT es el ID del proyecto. Si se omite esta marca, se usa el proyecto predeterminado o actual.
    • LOCATION es la ubicación regional o multirregional del repositorio.

    El resultado del comando incluye información sobre la política de la versión en mavenConfig. En este ejemplo, el repositorio tiene una política de versión de instantánea, y las instantáneas no pueden reemplazar versiones idénticas en el repositorio.

    Encryption: Google-managed key
    createTime: '2021-10-04T19:39:10.897404Z'
    format: MAVEN
    mavenConfig:
      allowSnapshotOverwrites: false
      versionPolicy: SNAPSHOT
    

    Si un repositorio no tiene una política de versiones, el valor de mavenConfig es {}.

Descripción general

Artifact Registry admite los siguientes métodos de autenticación.

Usa un asistente de autenticación
Esta opción proporciona la mayor flexibilidad. Cuando incluyes el asistente en tu configuración de Maven o Gradle, Artifact Registry busca credenciales de la cuenta de servicio en el entorno.
Especifica una clave de cuenta de servicio como una credencial
Usa esta opción cuando una aplicación no sea compatible con las credenciales predeterminadas de la aplicación, pero admita la autenticación mediante un nombre de usuario y una contraseña.

Las claves de la cuenta de servicio son credenciales de larga duración. Usa los siguientes lineamientos para limitar el acceso a tus repositorios:

  • Considera usar una cuenta de servicio dedicada para interactuar con los repositorios.
  • Otorga la función mínima de Artifact Registry que requiera la cuenta de servicio. Por ejemplo, asigna la función de lector de Artifact Registry a una cuenta de servicio que solo descargue artefactos.
  • Si los grupos de tu organización requieren diferentes niveles de acceso a repositorios específicos, otorga acceso a nivel de repositorio en lugar de a nivel de proyecto.
  • Sigue las prácticas recomendadas para administrar credenciales.

Autentica con un auxiliar de credenciales

Artifact Registry proporciona un vagón de Maven y un complemento de Gradle como auxiliares de credenciales. Cuando usas el auxiliar de credenciales, tus credenciales no se almacenan en tu proyecto de Java. En su lugar, Artifact Registry busca las credenciales en el siguiente orden:

  1. Las credenciales predeterminadas de la aplicación (ADC), que es una estrategia que busca credenciales en el siguiente orden:

    1. Credenciales definidas en la variable de entorno GOOGLE_APPLICATION_CREDENTIALS

    2. Credenciales que proporciona la cuenta de servicio predeterminada para Compute Engine, Google Kubernetes Engine, Cloud Run, App Engine o Cloud Functions

  2. Las credenciales que proporciona Google Cloud CLI, incluidas las credenciales de usuario del comando gcloud auth application-default login.

La variable GOOGLE_APPLICATION_CREDENTIALS hace que la cuenta sea explícita para la autenticación, lo que facilita la solución de problemas. Si no usas la variable, verifica que las cuentas que ADC pueda usar tengan los permisos necesarios. Por ejemplo, la cuenta de servicio predeterminada para las VM de Compute Engine, los nodos de Google Kubernetes Engine y las revisiones de Cloud Run tienen acceso de solo lectura a los repositorios. Si deseas subir datos desde estos entornos con la cuenta de servicio predeterminada, debes modificar los permisos.

Cómo configurar una cuenta de servicio para un auxiliar de credenciales

Para crear una cuenta de servicio y configurar la autenticación mediante la variable de entorno, haz lo siguiente:

  1. Crea una cuenta de servicio que actúe en nombre de tu aplicación o elige una cuenta de servicio existente que uses para la automatización.

    Necesitarás la ubicación del archivo de claves de la cuenta de servicio para configurar la autenticación con Artifact Registry. En las cuentas existentes, puedes ver claves y crear claves nuevas en la página Cuentas de servicio.

    Ir a la página Cuentas de servicio

  2. Otorga el rol de Artifact Registry específico a la cuenta de servicio para proporcionar acceso al repositorio.

  3. Asigna la ubicación del archivo de claves de la cuenta de servicio a la variable GOOGLE_APPLICATION_CREDENTIALS para que el auxiliar de credenciales de Artifact Registry pueda obtener tu clave cuando se conecta con repositorios.

    export GOOGLE_APPLICATION_CREDENTIALS=KEY-FILE
    

    En el ejemplo anterior, KEY-FILE es la ruta de acceso al archivo de claves de la cuenta de servicio.

Configura Maven

  1. Configura Maven para el tipo de repositorio que usas.

    Estándar

    1. Ejecuta el siguiente comando para imprimir la configuración del repositorio que deseas agregar a tu proyecto de Java.

      gcloud artifacts print-settings mvn \
          --project=PROJECT \
          --repository=REPOSITORY \
          --location=LOCATION
      

      ¿Por dónde

      • PROJECT es el ID del proyecto. Si se omite esta marca, se usa el proyecto predeterminado o actual.
      • REPOSITORY es el ID del repositorio. Si configuraste un repositorio predeterminado de Artifact Registry, se usa cuando se omite esta marca del comando.
      • LOCATION es la ubicación regional o multirregional del repositorio.
    2. Agrega la configuración que se muestra a las secciones correspondientes del archivo pom.xml en tu proyecto de Maven. Consulta la referencia del gerente de Operaciones con Socios de Maven para obtener detalles sobre la estructura del archivo.

      En el siguiente ejemplo, se muestra la configuración de un repositorio que almacena versiones de actualización y de instantáneas.

      <distributionManagement>
        <snapshotRepository>
          <id>artifact-registry</id>
          <url>artifactregistry://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY</url>
        </snapshotRepository>
        <repository>
          <id>artifact-registry</id>
          <url>artifactregistry://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY</url>
        </repository>
      </distributionManagement>
      
      <repositories>
        <repository>
          <id>artifact-registry</id>
          <url>artifactregistry://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
      
      <build>
        <extensions>
          <extension>
            <groupId>com.google.cloud.artifactregistry</groupId>
            <artifactId>artifactregistry-maven-wagon</artifactId>
            <version>2.2.1</version>
          </extension>
        </extensions>
      </build>
      

      Los elementos <release> y <snapshot> indican si el repositorio almacena paquetes de actualización, paquetes de instantáneas o ambos. Esta configuración debe corresponder a la política de versión del repositorio.

      El elemento <build> define el vagon de Artifact Registry como una extensión. Para obtener más información sobre el vagon, consulta la documentación de las herramientas de Maven de Artifact Registry.

    Remoto o virtual

    Edita el archivo pom.xml en tu proyecto. Consulta la referencia del gerente de Operaciones con Socios de Maven para obtener detalles sobre la estructura del archivo.

    En el siguiente ejemplo, se muestra la configuración de un repositorio remoto que almacena versiones de actualización y de instantáneas. En este ejemplo, el proyecto depende de una versión del paquete de Guava.

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>com.google.hello</groupId>
      <artifactId>repo-config</artifactId>
      <version>4.1-SNAPSHOT</version>
      <description>version 1 release</description>
    
      <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
      </properties>
      <dependencies>
        <dependency>
          <groupId>com.google.guava</groupId>
          <artifactId>guava</artifactId>
          <version>28.0-jre</version>
        </dependency>
      </dependencies>
    
      <repositories>
        <repository>
          <id>central</id>
          <name>Maven Central remote repository</name>
          <url>artifactregistry://LOCATION-maven.pkg.dev/PROJECT_ID/REMOTE-REPOSITORY-NAME</url>
          <layout>default</layout>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
    
      <build>
        <extensions>
          <extension>
            <groupId>com.google.cloud.artifactregistry</groupId>
            <artifactId>artifactregistry-maven-wagon</artifactId>
            <version>2.2.1</version>
          </extension>
        </extensions>
      </build>
    </project>
    
    • En la sección <repositories>, se define el repositorio de Artifact Registry. Para un repositorio remoto, el elemento <id> debe configurarse como central. Esta configuración anula el valor predeterminado para el ID del repositorio central que se hereda del Super POM.

    • En la sección <build>, se configura el vagón de Artifact Registry como una extensión. Para obtener información sobre esta alternativa, consulta la documentación de las herramientas de Maven de Artifact Registry.

    • En este ejemplo, la sección <dependencies> establece una dependencia en la versión 28.0-jre del paquete de Guava.

  2. Maven resuelve algunas dependencias antes de aplicar un vagon definido en pom.xml, incluidas las siguientes:

    • Referencias en un proyecto de Maven secundario a un proyecto superior con el elemento <parent>
    • Las dependencias de complementos se almacenan en Artifact Registry.

    Si tu proyecto necesita resolver estas dependencias, debes usar el mecanismo de extensiones principales para asegurarte de que Maven pueda ubicar complementos y archivos POM superiores.

    En tu proyecto, crea el archivo ${maven.projectBasedir}/.mvn/extensions.xml con el siguiente contenido. El elemento <extension> define la alternativa.

    <extensions xmlns="http://maven.apache.org/EXTENSIONS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/EXTENSIONS/1.0.0 http://maven.apache.org/xsd/core-extensions-1.0.0.xsd">
      <extension>
        <groupId>com.google.cloud.artifactregistry</groupId>
        <artifactId>artifactregistry-maven-wagon</artifactId>
        <version>2.2.1</version>
      </extension>
    </extensions>
    

    Maven ahora puede resolver dependencias superiores o de complementos desde Artifact Registry.

Se completó la configuración de autenticación.

Configura Gradle

  1. Configura Gradle para el tipo de repositorio que usas.

    Estándar

    1. Ejecuta el siguiente comando para imprimir la configuración del repositorio que deseas agregar a tu proyecto de Java.

      gcloud artifacts print-settings gradle \
          --project=PROJECT \
          --repository=REPOSITORY \
          --location=LOCATION
      

      ¿Por dónde

      • PROJECT es el ID del proyecto. Si se omite esta marca, se usa el proyecto predeterminado o actual.
      • REPOSITORY es el ID del repositorio. Si configuraste un repositorio predeterminado de Artifact Registry, se usa cuando se omite esta marca del comando.
      • LOCATION es la ubicación regional o multirregional del repositorio.
    2. Agrega la configuración del repositorio a tu archivo build.gradle. En el siguiente ejemplo, se muestra la ubicación relativa de las secciones impresas.

      plugins {
        id "maven-publish"
        id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1"
      }
      
      publishing {
        publications {
          mavenJava(MavenPublication) {
            groupId 'maven.example.id'
            from components.java
           }
        }
        repositories {
          maven {
            url "artifactregistry://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY"
          }
        }
      }
      repositories {
        maven {
          url "artifactregistry://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY"
        }
      }
      
      • En la sección plugins, se declara el complemento de Artifact Registry. Para obtener más información sobre el complemento, consulta la documentación de las herramientas de Maven de Artifact Registry.

      • En la sección publishing, se definen los archivos que se subirán y el repositorio de destino de Artifact Registry. Puedes actualizar la lista de archivos en la sección publications cuando estés listo para realizar cargas. Para obtener información sobre la configuración de publicación, consulta la documentación del complemento de publicación de Maven.

    Remoto o virtual

    Agrega la configuración del repositorio a tu archivo build.gradle.

    En el siguiente ejemplo, se muestra la configuración de un repositorio remoto. En este ejemplo, el proyecto depende de una versión del paquete de Guava.

    plugins {
      id 'java'
      id "maven-publish"
      id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1"
      id 'maven'
    }
    
    repositories {
      maven {
        url "artifactregistry://LOCATION-maven.pkg.dev /PROJECT_ID/REMOTE-REPOSITORY-NAME"
      }
    }
    dependencies {
      compile "com.google.guava:guava:31.1-jre"
    }
    
    • En la sección plugins, se declara el complemento de Artifact Registry. Para obtener más información sobre el complemento, consulta la documentación de las herramientas de Maven de Artifact Registry.

    • En la sección repositories, se define el repositorio de Artifact Registry.

    • En este ejemplo, la sección dependencies establece una dependencia en la versión 31.1-jre del paquete de Guava.

    Define tus dependencias para tu paquete en la sección dependencies.

  2. Si necesitas usar repositorios en tu archivo init.gradle o settings.gradle, puedes agregar la configuración del complemento a esos archivos.

    Para init.gradle, agrega la siguiente configuración:

    initscript {
      repositories {
        maven {
          url "https://plugins.gradle.org/m2/"
        }
      }
      dependencies {
        classpath "gradle.plugin.com.google.cloud.artifactregistry:artifactregistry-gradle-plugin:2.2.1"
      }
    }
    apply plugin: com.google.cloud.artifactregistry.gradle.plugin.ArtifactRegistryGradlePlugin
    

    Para settings.gradle, agrega la siguiente configuración:

    buildscript {
      repositories {
        maven {
          url "https://plugins.gradle.org/m2/"              }
        }
      dependencies {
        classpath "gradle.plugin.com.google.cloud.artifactregistry:artifactregistry-gradle-plugin:2.2.1"
      }
    }
    apply plugin: "com.google.cloud.artifactregistry.gradle-plugin"
    

Se completó la configuración de autenticación.

Configura la autenticación con contraseña

Usa este enfoque cuando la aplicación de Java requiera la autenticación con un nombre de usuario y una contraseña especificados.

Configura una cuenta de servicio para la autenticación con contraseña

Para crear una cuenta de servicio:

  1. Crea una cuenta de servicio que actúe en nombre de tu aplicación o elige una cuenta de servicio existente que uses para la automatización.

    Necesitarás la ubicación del archivo de claves de la cuenta de servicio para configurar la autenticación con Artifact Registry. En las cuentas existentes, puedes ver claves y crear claves nuevas en la página Cuentas de servicio.

    Ir a la página Cuentas de servicio

  2. Si quieres activar la cuenta de servicio en la sesión actual de gcloud CLI, ejecuta el siguiente comando:

    gcloud auth activate-service-account ACCOUNT --key-file=KEY-FILE
    

    ¿Por dónde

    • ACCOUNT es la cuenta de usuario o servicio.
    • KEY-FILE es la ruta al archivo de claves JSON de la cuenta de servicio.

Configura Maven

  1. Configura Maven para el tipo de repositorio que usas.

    Estándar

    1. Ejecuta el siguiente comando para imprimir la configuración del repositorio que deseas agregar a tu proyecto de Java.

      gcloud artifacts print-settings mvn \
          --project=PROJECT \
          --repository=REPOSITORY \
          --location=LOCATION \
          --json-key=KEY-FILE
      

      ¿Por dónde

      • PROJECT es el ID del proyecto. Si se omite esta marca, se usa el proyecto predeterminado o actual.
      • REPOSITORY es el ID del repositorio. Si configuraste un repositorio predeterminado de Artifact Registry, se usa cuando se omite esta marca del comando.
      • LOCATION es la ubicación regional o multirregional del repositorio.
      • KEY-FILE es la ruta al archivo de claves JSON de la cuenta de servicio.

    El comando muestra la configuración para incluir en tu proyecto de Java, incluida una versión de tu clave privada codificada en base64.

    1. Agrega la configuración del repositorio que se muestra en el elemento <project> a las secciones correspondientes del archivo pom.xml en tu proyecto de Maven. Consulta la referencia del gerente de Operaciones con Socios de Maven para obtener detalles sobre la estructura del archivo.
    <project>
      <distributionManagement>
        <snapshotRepository>
          <id>artifact-registry</id>
          <url>https://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY</url>
        </snapshotRepository>
        <repository>
          <id>artifact-registry</id>
          <url>https://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY</url>
        </repository>
      </distributionManagement>
    
      <repositories>
        <repository>
          <id>artifact-registry</id>
          <url>https://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
    </project>
    

    Los elementos <release> y <snapshot> indican si el repositorio almacena paquetes de actualización, paquetes de instantáneas o ambos. Esta configuración debe corresponder a la política de versión del repositorio.

    1. Agrega la configuración de autenticación que se muestra en el elemento <settings> a la sección <servers> del archivo ~/.m2/settings.xml. En el siguiente ejemplo, KEY es la clave codificada en base64 de tu archivo de claves.

    Consulta la referencia de la configuración de Maven para obtener más información.

    <settings>
      <servers>
        <server>
          <id>artifact-registry</id>
          <configuration>
            <httpConfiguration>
              <get>
                <usePreemptive>true</usePreemptive>
              </get>
              <head>
                <usePreemptive>true</usePreemptive>
              </head>
              <put>
                <params>
                  <property>
                    <name>http.protocol.expect-continue</name>
                    <value>false</value>
                  </property>
                </params>
              </put>
            </httpConfiguration>
          </configuration>
          <username>_json_key_base64</username>
          <password>KEY</password>
        </server>
      </servers>
    </settings>
    

    Remoto o virtual

    1. Agrega la configuración del repositorio a las secciones apropiadas del archivo pom.xml para tu proyecto de Maven. Consulta la referencia del gerente de Operaciones con Socios de Maven para obtener detalles sobre la estructura del archivo.

      <repositories>
        <repository>
           <id>central</id>
           <name>Maven Central remote repository</name>
           <url>artifactregistry://LOCATION-maven.pkg.dev/PROJECT_ID/REMOTE-REPOSITORY-NAME</url>
           <layout>default</layout>
           <releases>
             <enabled>true</enabled>
           </releases>
           <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
      

    En la sección <repositories>, se define el repositorio de Artifact Registry. Para un repositorio remoto, el elemento <id> debe configurarse como central. Esta configuración anula el valor predeterminado para el ID del repositorio central que se hereda del Super POM.

    1. Codifica en Base64 tu archivo de claves con el siguiente comando. Reemplaza KEY-FILE por el nombre de tu archivo de claves.

      base64 -w 0 KEY-FILE
      
    2. Agrega la configuración de autenticación en el elemento <settings> a la sección <servers> del archivo ~/.m2/settings.xml.

    Consulta la referencia de la configuración de Maven para obtener más información.

    <settings>
      <servers>
        <server>
          <id>artifact-registry</id>
          <configuration>
            <httpConfiguration>
              <get>
                <usePreemptive>true</usePreemptive>
              </get>
              <head>
                <usePreemptive>true</usePreemptive>
              </head>
              <put>
                <params>
                  <property>
                    <name>http.protocol.expect-continue</name>
                    <value>false</value>
                  </property>
                </params>
              </put>
            </httpConfiguration>
          </configuration>
          <username>_json_key_base64</username>
          <password>KEY</password>
        </server>
      </servers>
    </settings>
    

Se completó la configuración de autenticación.

Configura Gradle

  1. Configura Gradle para el tipo de repositorio que usas.

    Estándar

    1. Ejecuta el siguiente comando para imprimir la configuración del repositorio que deseas agregar a tu proyecto de Java.

      gcloud artifacts print-settings gradle \
          --project=PROJECT \
          --repository=REPOSITORY \
          --location=LOCATION \
          --json-key=KEY-FILE
      

      ¿Por dónde

      • PROJECT es el ID del proyecto.
      • REPOSITORY es el ID o el identificador completamente calificado del repositorio. Si configuraste un repositorio predeterminado de Artifact Registry, se usa cuando se omite esta marca del comando.
      • KEY-FILE es la ruta al archivo de claves JSON de la cuenta de servicio. Si ejecutaste el comando para activar tu cuenta de servicio, puedes omitir esta marca.

      El comando muestra la configuración para incluir en tu proyecto de Java, incluida una versión de tu clave privada codificada en base64.

    2. En la siguiente línea de configuración que se muestra, se define una variable llamada artifactRegistryMavenSecret para la clave de tu cuenta de servicio. Agrega esta línea a tu archivo ~/.gradle/gradle.properties para que la clave no sea visible en tus compilaciones ni en tu repositorio de control de origen.

      artifactRegistryMavenSecret = KEY
      

      En esta línea, KEY es la clave privada en el archivo de claves de tu cuenta de servicio. En _json_key_base64, artifactRegistryMavenSecret se establece en la clave codificada en base64 como contraseña.

    3. En tu build.gradle, especifica la configuración del repositorio:

      plugins {
        id "maven-publish"
      }
      
      publishing {
        publications {
          mavenJava(MavenPublication) {
            groupId 'maven.example.id'
            from components.java
          }
        }
        repositories {
          maven {
            url "https://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY"
            credentials {
              username = "_json_key_base64"
              password = "$artifactRegistryMavenSecret"
            }
            authentication {
              basic(BasicAuthentication)
            }
          }
        }
      }
      repositories {
        maven {
          url "https://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY"
          credentials {
            username = "_json_key_base64"
            password = "$artifactRegistryMavenSecret"
          }
          authentication {
            basic(BasicAuthentication)
          }
        }
      }
      
      • En la sección repositories, se configuran la URL del repositorio y las credenciales para la autenticación.
      • En la sección publishing, se definen los archivos que se subirán y el repositorio de destino de Artifact Registry. Puedes actualizar la lista de archivos en la sección publications cuando estés listo para realizar cargas. Para obtener información sobre la configuración de publicación, consulta la documentación del complemento de publicación de Maven.

    Remoto o virtual

    1. Codifica en Base64 tu archivo de claves con el siguiente comando. Reemplaza KEY-FILE por el nombre de tu archivo de claves.

      base64 -w 0 KEY-FILE
      
    2. En el archivo ~/.gradle/gradle.properties, agrega la siguiente línea para que tu clave no sea visible en tus compilaciones ni en el repositorio de control de código fuente.

      artifactRegistryMavenSecret = KEY
      

      En esta línea, KEY es el contenido de tu archivo de claves codificado en base64.

    3. Agrega la configuración del repositorio a tu archivo build.gradle.

    En el siguiente ejemplo, se muestra la configuración de un repositorio remoto.

    plugins {
      id 'java'
      id "maven-publish"
      id 'maven'
    }
    
    repositories {
      maven {
        url "artifactregistry://LOCATION-maven.pkg.dev /PROJECT_ID/REMOTE-REPOSITORY-NAME"
        credentials {
        username = "_json_key_base64"
        password = "$artifactRegistryMavenSecret"
      }
      authentication {
        basic(BasicAuthentication)
      }
      dependencies {
        compile "com.google.guava:guava:31.1-jre"
      }
    
    • En la sección repositories, se define el repositorio de Artifact Registry.

    • En este ejemplo, la sección dependencies establece una dependencia en la versión 31.1-jre del paquete de Guava.

    Define tus dependencias para tu paquete en la sección dependencies.

Se completó la configuración de autenticación.

¿Qué sigue?