Artifact Registry admite paquetes de Java que compilas con Maven y Gradle.
Descripción general
Para familiarizarte con los paquetes de Java en Artifact Registry, puedes probar la quickstart. También puedes mirar un video de descripción general.
Cuando estés listo para obtener más información, lee lo siguiente:
- Crea un repositorio de paquetes de Java para tus paquetes.
- Aprende a crear repositorios remotos y virtuales.
- Lee sobre cómo se pueden usar los repositorios remotos y virtuales en este ejemplo de uso del repositorio.
- Otorga permisos a la cuenta que se conectará con el repositorio. Las cuentas de servicio de integraciones comunes con Artifact Registry tienen permisos predeterminados para los repositorios del mismo proyecto.
- Configura tus herramientas:
- Configura la autenticación para Maven o Gradle.
- 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.
- Configura Cloud Build para subir y descargar paquetes.
- Obtén más información sobre la implementación en los entornos de ejecución de Google Cloud.
- Obtén más información sobre cómo administrar paquetes
Instantáneas y versiones de actualización de Maven
Maven distingue entre las versiones de instantánea y lanzamiento de tus proyectos de Maven.
Instantáneas
Una instantánea es una versión previa al lanzamiento de un proyecto de Java. El número de versión de una instantánea incluye el sufijo -SNAPSHOT
en tu Modelo de objetos del proyecto (POM). Por ejemplo, esta configuración en el archivo pom.xml
es para una versión 1.0
del proyecto que está en desarrollo:
<version>1.0-SNAPSHOT</version>
Cuando publicas un paquete de este proyecto, Maven 3 agrega automáticamente una marca de tiempo al número de versión de la instantánea para que cada versión sea única. Maven 2 admite versiones de instantáneas no únicas como un medio para reemplazar las instantáneas existentes en un repositorio. Este enfoque es problemático para la reproducibilidad de las compilaciones, por lo que Maven 3 ya no admite instantáneas que no son únicas.
Las instantáneas te permiten publicar de manera iterativa versiones actualizadas de un paquete previo al lanzamiento sin aumentar el número de versión en tu proyecto de Maven cada vez que publicas en el repositorio. Durante el desarrollo, otros proyectos con dependencias en el paquete pueden obtener la instantánea más reciente de la versión 1.0
del repositorio.
Consulta la especificación del orden de versión para obtener detalles sobre la sintaxis del número de versión de Maven y el orden de clasificación.
Versiones
Cuando estés listo para lanzar un paquete, quita el sufijo -SNAPSHOT
del número de versión en el archivo POM y actualiza los proyectos que dependen del paquete para que usen la versión de actualización en lugar de la versión de la instantánea.
Para enumerar todas las dependencias de instantáneas, puedes filtrar el árbol de dependencias con el siguiente comando:
mvn dependency:tree -Dincludes=:::*-SNAPSHOT
Política de versiones de Artifact Registry
Cuando creas un repositorio de Maven en Artifact Registry, puedes especificar una política de versión de Maven:
- None: Almacena paquetes de instantáneas y de lanzamiento. Esta es la configuración predeterminada.
- Instantánea: almacena solo paquetes de instantáneas.
- Versión: Almacena solo paquetes de lanzamiento.
Si eliges la política de versión de la instantánea, también puedes especificar si el repositorio permite versiones de instantáneas no únicas que reemplacen las versiones coincidentes en el repositorio. Recomendamos usar versiones únicas, ya que Maven 3 no es compatible con el modelo de versión no único.
Descripción general del video
En este video, se proporciona una descripción general de Artifact Registry y cómo puedes usar Artifact Registry con Cloud Build para trabajar con paquetes de Java. Para obtener más información sobre el uso de Cloud Build con Artifact Registry, consulta Integración en Cloud Build.