En esta página, se describe cómo agregar, ver y borrar paquetes de Java.
Si deseas usar sbt como herramienta de compilación para Scala y Java en lugar de usar Maven o Gradle, hay disponible un complemento sbt creado por la comunidad. En esta documentación, no se describe la configuración ni el uso de los clientes de Scala.
Antes de comenzar
- Si el repositorio de destino no existe, crea un repositorio nuevo.
- Verifica que tengas los permisos necesarios para el repositorio.
- Verifica que hayas configurado la autenticación. Si usas un token de acceso, asegúrate de actualizarlo antes de conectarte al repositorio.
- (Opcional) Configura valores predeterminados para los comandos de gcloud.
Funciones obligatorias
A fin de obtener los permisos que necesitas para administrar paquetes, pídele a tu administrador que te otorgue los siguientes roles de IAM en el repositorio:
-
Ver paquetes o archivos en paquetes: Lector de Artifact Registry (
roles/artifactregistry.reader
) -
Descarga o instala paquetes:
Lector de Artifact Registry (
roles/artifactregistry.reader
) -
Agrega paquetes a un repositorio:
Escritor de Artifact Registry (
roles/artifactregistry.writer
) -
Borrar paquetes:
Administrador del repositorio de Artifact Registry (
roles/artifactregistry.repoAdmin
)
Si quieres obtener más información para otorgar funciones, consulta Administra el acceso.
Es posible que también puedas obtener los permisos necesarios mediante funciones personalizadas, o bien otras funciones predefinidas.
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 Google Cloud Console o gcloud
, sigue estos pasos:
Consola
Abre la página Repositorios en la consola de Google Cloud.
En la lista de repositorios, haz clic en el repositorio correspondiente.
En la página Paquetes, se enumeran los paquetes del repositorio.
Haz clic en un paquete para ver las versiones de este.
gcloud
Para enumerar los paquetes en un repositorio, ejecuta el siguiente comando:
gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]
¿Por dónde
- REPOSITORY es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.
- LOCATION es una ubicación regional o multirregional. 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.
Para ver las versiones de un paquete, ejecuta el siguiente comando:
gcloud artifacts versions list --package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION]
Donde
- 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 una ubicación regional o multirregional. 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.
Para los repositorios remotos, la lista que se muestra debe incluir todas las dependencias directas y transitivas.
Cómo mostrar una lista de archivos
Modos de repositorio: Estándar, remoto
Puedes enumerar archivos en un repositorio, archivos en todas las versiones de un paquete específico o archivos en una versión específica de un paquete.
En todos los comandos siguientes, puedes agregar la marca --limit
al comando para configurar una cantidad máxima de archivos que se mostrarán.
Para enumerar todos los archivos en el proyecto, el repositorio y la ubicación predeterminados cuando se configuran los valores predeterminados, haz lo siguiente:
gcloud artifacts files list
Para mostrar una lista de archivos en un proyecto, un repositorio y una ubicación especificados, ejecuta el siguiente comando:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION
Si quieres generar una lista de archivos para todas las versiones de un paquete específico, haz lo siguiente:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE
Para hacer una lista de los archivos de una versión específica del paquete:
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 es 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
Ten en cuenta la siguiente información del paquete:
- Proyecto:
my-project
- Repositorio:
my-repo
- Ubicación del repositorio:
us-central1
- Paquete:
my-app
Con el siguiente comando, se enumeran todos los archivos del repositorio my-repo
en la ubicación us-central1
dentro del proyecto predeterminado:
gcloud artifacts files list \
--location=us-central1 \
--repository=my-repo
Con el siguiente comando, se enumeran los archivos de la versión 1.0
del paquete.
gcloud artifacts files list \
--project=my-project \
--location=us-central1 \
--repository=my-repo \
--package=my-app \
--version=1.0
Descarga paquetes
Modos de repositorio: estándar, remoto, virtual
Para descargar un artefacto como parte de tu compilación, debes declarar el artefacto como una dependencia.
Maven
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 paqueteartifact
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.
Compila el proyecto de Java.
mvn compile
Gradle
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 paqueteartifact
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' }
Compila el proyecto de Java.
gradle build
En los repositorios estándar, debes descargar un paquete directamente desde el repositorio.
Para un repositorio remoto, descarga 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 ascendente y lo almacena en caché antes de entregártelo. Para verificar si el repositorio remoto recuperó los paquetes de la fuente ascendente, observa la lista de paquetes en el repositorio.
En el caso de un repositorio virtual, Artifact Registry busca el paquete solicitado en los repositorios ascendentes.
- Los repositorios remotos upstream descargarán y almacenarán en caché el paquete solicitado si no existe una copia almacenada en caché. Los repositorios virtuales solo entregan 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 establecida para el repositorio virtual.
Por ejemplo, considera un repositorio virtual con la siguiente configuración de prioridad para repositorios upstream:
main-repo
: Se estableció la prioridad en100
secondary-repo1
: La prioridad se estableció en80
.secondary-repo2
: La prioridad se estableció en80
.test-repo
: La prioridad se estableció en20
.
main-repo
tiene el valor de prioridad más alto, por lo que el repositorio virtual siempre lo busca primero.
secondary-repo1
y secondary-repo2
tienen la prioridad establecida en 80
. Si un
paquete solicitado no está disponible en main-repo
, Artifact Registry
busca en estos repositorios a continuación. Como ambos tienen el mismo valor de prioridad, Artifact Registry puede optar por entregar un paquete de cualquiera de los repositorios si la versión está disponible en ambos.
test-repo
tiene el valor de prioridad más bajo y entregará 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 borrar una versión específica.
- Una vez que borres un paquete, no podrás deshacer la acción.
- En el caso de los repositorios remotos, solo se borra la copia almacenada en caché del paquete. La fuente ascendente no se ve afectada. Si borras un paquete almacenado en caché, Artifact Registry lo descargará y volverá a 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:
Consola
Abre la página Repositorios en la consola de Google Cloud.
En la lista de repositorios, haz clic en el repositorio correspondiente.
En la página Paquetes, se enumeran los paquetes del repositorio.
Selecciona el paquete que quieres borrar.
Haz clic en BORRAR.
En el cuadro de diálogo de confirmación, haz clic en BORRAR.
gcloud
Ejecuta el siguiente comando:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
¿Por dónde
- 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 una ubicación regional o multirregional. 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.
--async
se muestra de inmediato, sin necesidad de esperar a que se complete la operación en curso.
Para borrar versiones de un paquete, haz lo siguiente:
Consola
Abre la página Repositorios en la consola de Google Cloud.
En la lista de repositorios, haz clic en el repositorio correspondiente.
En la página Paquetes, se enumeran los paquetes del repositorio.
Haz clic en un paquete para ver sus versiones.
Selecciona las versiones que deseas borrar.
Haz clic en BORRAR.
En el cuadro de diálogo de confirmación, haz clic en BORRAR.
gcloud
Ejecuta el siguiente comando:
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
¿Por dónde
- 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 una ubicación regional o multirregional. 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.
--async
se muestra de inmediato, sin necesidad de esperar a que se complete la operación en curso.
¿Qué sigue?
- Obtén más información para administrar paquetes de Node.js
- Obtén más información para administrar paquetes de Python
- Aprende a administrar imágenes de contenedor