Administra paquetes de Java

En esta página, se describe cómo agregar, ver y borrar paquetes de Java.

Si quieres usar sbt como herramienta de compilación para Scala y Java en lugar de Maven o Gradle, hay un complemento de sbt creado por la comunidad disponible. En esta documentación, no se describe la configuración ni el uso de clientes de Scala.

Antes de comenzar

  1. Si el repositorio de destino no existe, crea un repositorio nuevo.
  2. Verifica que tengas los permisos necesarios para el repositorio.
  3. Verifica que hayas configurado la autenticación. Si usas un token de acceso, asegúrate de actualizarlo antes de conectarte al repositorio.
  4. (Opcional) Configura valores predeterminados para los comandos de gcloud.

Roles obligatorios

Para obtener los permisos que necesitas para administrar paquetes, pídele a tu administrador que te otorgue los siguientes roles de IAM en el repositorio:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Agrega paquetes

Modos de repositorio: Estándar

Para agregar paquetes al repositorio, haz lo siguiente:

Maven

Usa mvn deploy y mvn release para agregar paquetes al repositorio.

Para implementar con éxito un proyecto de Maven que haga referencia a un superior, el proyecto debe incluir el proveedor de la alternativa de Artifact Registry en un archivo de extensiones principales, como se describe en las instrucciones de autenticación.

Usa mvn deploy:deploy-file para subir artefactos que se compilaron fuera de Maven.

Por ejemplo, mediante este comando de ejemplo, se implementa example/external.jar y su archivo de proyecto example/pom.xml en el repositorio us-central1-maven.pkg.dev/my-project/my-repo.

mvn deploy:deploy-file \
-Durl=artifactregistry://us-central1-maven.pkg.dev/my-project/my-repo \
-DpomFile=example/pom.xml -Dfile=example/external.jar

Para configurar la integración con Cloud Build, consulta Integración con Cloud Build.

Gradle

Para publicar con éxito en el repositorio, tu archivo build.gradle debe incluir una sección de Publicaciones que defina los archivos que deseas subir.

Usa el comando gradle publish para subir un paquete al repositorio.

Visualiza paquetes y versiones

Modos de repositorio: estándar, remoto

Para ver los paquetes y sus versiones con la consola de Google Cloud o gcloud, haz lo siguiente:

Console

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

    Abrir la página Repositorios

  2. En la lista de repositorios, haz clic en el repositorio correspondiente.

    En la página Paquetes, se enumeran los paquetes del repositorio.

  3. Haz clic en un paquete para ver las versiones de este.

gcloud

Para generar una lista de los paquetes en un repositorio, ejecuta el siguiente comando:

gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]

Reemplaza lo siguiente:

  • REPOSITORY es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.
  • LOCATION es la ubicación regional o multirregional del repositorio. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usarla.

Para ver las versiones de un paquete, ejecuta el siguiente comando:

gcloud artifacts versions list --package=PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION]

Reemplaza lo siguiente:

  • PACKAGE es el ID del paquete o el identificador completamente calificado del paquete.
  • REPOSITORY es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.
  • LOCATION es la ubicación regional o multirregional del repositorio. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usarla.

En el caso de los repositorios remotos, la lista que se muestra debe incluir todas las dependencias directas y transitivas.

Cómo enumerar archivos

Modos de repositorio: estándar, remoto

Puedes generar una lista de archivos en un repositorio, archivos en todas las versiones de un paquete especificado o archivos en una versión específica de un paquete.

Para todos los siguientes comandos, puedes establecer una cantidad máxima de archivos que se mostrarán si agregas la marca --limit al comando.

Para enumerar todos los archivos del proyecto, el repositorio y la ubicación predeterminados cuando se configuran los valores predeterminados, haz lo siguiente:

gcloud artifacts files list

Para enumerar los archivos de un proyecto, un repositorio y una ubicación especificados, ejecuta el siguiente comando:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION

Para obtener una lista de los archivos de todas las versiones de un paquete específico, haz lo siguiente:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE

Para enumerar los archivos de una versión específica de un paquete, haz lo siguiente:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --version=VERSION

Reemplaza los siguientes valores:

  • LOCATION: Es la ubicación regional o multirregional del repositorio.
  • PROJECT: El ID del proyecto de Google Cloud . Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.
  • REPOSITORY: Es el nombre del repositorio en el que se almacena la imagen.
  • PACKAGE: Es el nombre del paquete.
  • VERSION: Es la versión del paquete.

Ejemplos

Considera la siguiente información del paquete:

  • Proyecto: my-project
  • Repositorio: my-repo
  • Ubicación del repositorio: us-west1
  • Paquete: my-app

Con el siguiente comando, se enumeran todos los archivos del repositorio my-repo en la posición us-west1 dentro del proyecto predeterminado:

gcloud artifacts files list \
    --location=us-west1 \
    --repository=my-repo
El siguiente comando muestra una lista de los archivos en la versión 1.0 del paquete.

gcloud artifacts files list \
    --project=my-project \
    --location=us-west1 \
    --repository=my-repo \
    --package=my-app \
    --version=1.0

Descarga paquetes

Modos de repositorio: estándar, remoto y virtual

Para descargar un artefacto como parte de tu compilación, debes declarar el artefacto como una dependencia.

Maven

  1. Declara los paquetes que deseas descargar en el archivo pom.xml del proyecto. En el siguiente ejemplo, se declara la versión 1.0 del paquete artifact como una dependencia.

    <dependencies>
        <dependency>
            <groupId>group</groupId>
            <artifactId>artifact</artifactId>
            <version>1.0</version>
        </dependency>
    </dependencies>
    

    Para obtener más información sobre las dependencias de Maven, consulta la introducción a las dependencias y la referencia de las dependencias de Maven.

  2. Compila el proyecto de Java.

    mvn compile
    

Gradle

  1. Declara los paquetes que deseas descargar en el archivo build.gradle del proyecto. En el siguiente ejemplo, se declara la versión 1.0 del paquete artifact como una dependencia de compilación externa.

    Para obtener más información sobre las dependencias de Gradle, consulta la documentación de Gradle.

    dependencies {
        compile group: 'group', name: 'artifact', version: '1.0'
    }
    
  2. Compila el proyecto de Java.

    gradle build
    

En el caso de los repositorios estándar, puedes descargar un paquete directamente desde el repositorio.

En el caso de un repositorio remoto, descargas una copia almacenada en caché del paquete y sus dependencias. Si no existe una copia almacenada en caché, el repositorio remoto descarga el paquete de la fuente upstream y lo almacena en caché antes de entregarlo. Para verificar que el repositorio remoto recuperó los paquetes de la fuente upstream, consulta la lista de paquetes en el repositorio.

En el caso de un repositorio virtual, Artifact Registry busca el paquete solicitado en los repositorios directos.

  • Los repositorios remotos upstream descargarán y almacenarán en caché el paquete solicitado si no existe una copia en caché. Los repositorios virtuales solo entregan los paquetes solicitados, no los almacenan.
  • Si solicitas una versión que está disponible en más de un repositorio upstream, Artifact Registry elige un repositorio upstream para usar en función de la configuración de prioridad configurada para el repositorio virtual.

Por ejemplo, considera un repositorio virtual con la siguiente configuración de prioridad para los repositorios upstream:

  • main-repo: Prioridad establecida en 100
  • secondary-repo1: Prioridad establecida en 80.
  • secondary-repo2: Prioridad establecida en 80.
  • test-repo: Prioridad establecida en 20.

main-repo tiene el valor de prioridad más alto, por lo que el repositorio virtual siempre lo busca primero.

Tanto secondary-repo1 como secondary-repo2 tienen la prioridad establecida en 80. Si un paquete solicitado no está disponible en main-repo, Artifact Registry busca estos repositorios a continuación. Dado que ambos tienen el mismo valor de prioridad, Artifact Registry puede elegir entregar un paquete desde cualquiera de los repositorios si la versión está disponible en ambos.

test-repo tiene el valor de prioridad más bajo y publicará un artefacto almacenado si ninguno de los otros repositorios upstream lo tiene.

Borra paquetes y versiones

Modos de repositorio: estándar, remoto

Puedes borrar un paquete y todas sus versiones, o bien borrar una versión específica.

  • Una vez que borras un paquete, no puedes deshacer la acción.
  • En el caso de los repositorios remotos, solo se borra la copia almacenada en caché del paquete. La fuente upstream no se ve afectada. Si borras un paquete almacenado en caché, Artifact Registry lo volverá a descargar y almacenar en caché la próxima vez que el repositorio reciba una solicitud para la misma versión del paquete.

Antes de borrar un paquete o una versión de un paquete, verifica que se haya comunicado o abordado cualquier dependencia importante en este.

Para borrar un paquete, haz lo siguiente:

Console

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

    Abrir la página Repositorios

  2. En la lista de repositorios, haz clic en el repositorio correspondiente.

    En la página Paquetes, se enumeran los paquetes del repositorio.

  3. Selecciona el paquete que quieres borrar.

  4. Haz clic en BORRAR.

  5. En el cuadro de diálogo de confirmación, haz clic en BORRAR.

gcloud

Ejecuta el comando siguiente:

gcloud artifacts packages delete PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] [--async]

Reemplaza lo siguiente:

  • PACKAGE es el nombre del paquete en el repositorio.
  • REPOSITORY es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.
  • LOCATION es la ubicación regional o multirregional del repositorio. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usarla.

La marca --async hace que el comando se muestre de inmediato, sin necesidad de esperar a que se complete la operación en curso.

Para borrar versiones de un paquete, haz lo siguiente:

Console

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

    Abrir la página Repositorios

  2. En la lista de repositorios, haz clic en el repositorio correspondiente.

    En la página Paquetes, se enumeran los paquetes del repositorio.

  3. Haz clic en un paquete para ver las versiones de este.

  4. Selecciona las versiones que quieres borrar.

  5. Haz clic en BORRAR.

  6. En el cuadro de diálogo de confirmación, haz clic en BORRAR.

gcloud

Ejecuta el comando siguiente:

gcloud artifacts versions delete VERSION \
    --package=PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] \
    [--async]

Reemplaza lo siguiente:

  • VERSION es el nombre de la versión que se borrará.
  • PACKAGE es el nombre del paquete en el repositorio.
  • REPOSITORY es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.
  • LOCATION es la ubicación regional o multirregional del repositorio. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usarla.

La marca --async hace que el comando se muestre de inmediato, sin necesidad de esperar a que se complete la operación en curso.

¿Qué sigue?