Obtén información sobre los pasos para solucionar problemas que pueden servirte si tienes dificultades para administrar paquetes de Java en Artifact Registry.
No se puede resolver una dependencia almacenada en Artifact Registry
Maven resuelve algunas dependencias antes de aplicar un vagón definido en pom.xml
, incluidas las siguientes:
- Referencias en un proyecto de Maven secundario a un proyecto superior con el elemento
<parent>
- Dependencias de complementos almacenadas en Artifact Registry
Si tu proyecto necesita resolver estas dependencias, debes usar el mecanismo de extensiones principales para asegurarte de que Maven pueda encontrar los archivos y complementos 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.4</version>
</extension>
</extensions>
No se pueden subir instantáneas no únicas a un repositorio de instantáneas.
Puedes subir versiones de instantáneas que no existen en un repositorio de instantáneas de Artifact Registry, pero no puedes reemplazar una versión que ya existe en el repositorio.
Los resúmenes no únicos son una función de Maven 2. Maven 3 siempre agrega una marca de tiempo a los números de versión de instantáneas para que cada versión de instantánea sea única.
Artifact Registry solo admite versiones de instantáneas que no son únicas en repositorios con una política de versión de instantáneas. De forma predeterminada, los repositorios de instantáneas solo aceptan versiones de instantáneas únicas. Solo puedes establecer una política de versiones cuando creas el repositorio.
Para conocer la configuración de la política de versiones de un repositorio, ejecuta el siguiente comando:
gcloud artifacts repositories describe REPOSITORY \
[--project=PROJECT] \
[--location=LOCATION]
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 versiones en mavenConfig
. En el siguiente ejemplo, el repositorio tiene una política de versiones de instantáneas, y las instantáneas no pueden reemplazar versiones idénticas en el repositorio.
Encryption: Google-managed key
createTime: '2021-09-23T19:39:10.897404Z'
format: MAVEN
mavenConfig:
allowSnapshotOverwrites: false
versionPolicy: SNAPSHOT