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 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.
Roles requeridos
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:
-
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
) -
Borra paquetes:
Administrador del repositorio de Artifact Registry (
roles/artifactregistry.repoAdmin
)
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 a través de 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
To view packages and package versions using the Google Cloud console
or gcloud
:
Console
Open the Repositories page in the Google Cloud console.
In the repository list, click the appropriate repository.
The Packages page lists the packages in the repository.
Click a package to view versions of the package.
gcloud
To list packages in a repository, run the following command:
gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]
Replace the following:
REPOSITORY
is the name of the repository. If you configured a default repository, you can omit this flag to use the default.-
LOCATION
is the regional or multi-regional location of the repository. If you configured a default location, then you can omit this flag to use the default.
To view versions of a package, run the following command:
gcloud artifacts versions list --package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION]
Replace the following:
PACKAGE
is the ID of the package or fully qualified identifier for the package.REPOSITORY
is the name of the repository. If you configured a default repository, then you can omit this flag to use the default.-
LOCATION
is the regional or multi-regional location of the repository. Use this flag to view repositories in a specific location. If you configured a default location, then you can omit this flag to use the default.
En el caso de los repositorios remotos, la lista que se devuelve debe incluir todas las dependencias directas y transitivas.
Cómo enumerar archivos
Modos de repositorio: estándar, remoto
Puedes enumerar los archivos de un repositorio, los archivos de todas las versiones de un paquete especificado o los archivos de una versión específica de un paquete.
Para todos los siguientes comandos, puedes establecer una cantidad máxima de archivos que se devolverán agregando la marca --limit
al comando.
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 enumerar los 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
Para enumerar 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 de paquete específica, 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 Google Cloud ID del proyecto. 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
El siguiente comando enumera todos los archivos del repositorio my-repo
en la ubicación us-west1
dentro del proyecto predeterminado:
gcloud artifacts files list \
--location=us-west1 \
--repository=my-repo
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
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 el caso de los repositorios estándar, descargas 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 en caché, el repositorio remoto descarga el paquete de la fuente upstream y lo almacena en caché antes de entregártelo. 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 usarlo según la configuración de prioridad establecida para el repositorio virtual.
Por ejemplo, considera un repositorio virtual con los siguientes parámetros de configuración de prioridad para los repositorios upstream:
main-repo
: Prioridad establecida 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.
Tanto secondary-repo1
como secondary-repo2
tienen la prioridad establecida en 80
. Si un paquete solicitado no está disponible en main-repo
, Artifact Registry buscará en estos repositorios a continuación. Dado que ambos tienen el mismo valor de prioridad, Artifact Registry puede optar por 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 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 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.
Before you delete a package or package version, verify that any you have communicated or addressed any important dependencies on it.
To delete a package:
Console
Open the Repositories page in the Google Cloud console.
In the repository list, click the appropriate repository.
The Packages page lists the packages in the repository.
Select the package that you want to delete.
Click DELETE.
In the confirmation dialog box, click DELETE.
gcloud
Run the following command:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Replace the following:
PACKAGE
is the name of the package in the repository.REPOSITORY
is the name of the repository. If you configured a default repository, then you can omit this flag to use the default.-
LOCATION
is the regional or multi-regional location of the repository. Use this flag to view repositories in a specific location. If you configured a default location, then you can omit this flag to use the default.
The --async
flag causes the command to return immediately,
without waiting for the operation in progress to complete.
To delete versions of a package:
Console
Open the Repositories page in the Google Cloud console.
In the repository list, click the appropriate repository.
The Packages page lists the packages in the repository.
Click a package to view versions of that package.
Select versions that you want to delete.
Click DELETE.
In the confirmation dialog box, click DELETE.
gcloud
Run the following command:
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
Replace the following:
VERSION
is the name of the version to delete.PACKAGE
is the name of the package in the repository.REPOSITORY
is the name of the repository. If you configured a default repository, then you can omit this flag to use the default.-
LOCATION
is the regional or multi-regional location of the repository. Use this flag to view repositories in a specific location. If you configured a default location, then you can omit this flag to use the default.
The --async
flag causes the command to return immediately,
without waiting for the operation in progress to complete.
¿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
- Obtén más información para administrar imágenes de contenedor
- Cómo descargar archivos individuales dentro de un paquete