Saiba mais sobre as etapas de solução de problemas que podem ser úteis se você tiver problemas ao gerenciar pacotes Java no Artifact Registry.
Não é possível resolver uma dependência armazenada no Artifact Registry
O Maven resolve algumas dependências antes de aplicar um vagão definido em
pom.xml
, incluindo:
- Referências em um projeto filho do Maven para um projeto pai usando o
elemento
<parent>
. - Dependências de plug-ins armazenadas no Artifact Registry.
Se o projeto precisar resolver essas dependências, use o mecanismo de extensões principais para garantir que o Maven possa localizar arquivos POM e plug-ins principais.
No seu projeto, crie o arquivo ${maven.projectBasedir}/.mvn/extensions.xml
com o seguinte conteúdo. O elemento <extension>
define o
compilador.
<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>
Não é possível fazer upload de snapshots não exclusivos para um repositório de snapshots.
É possível fazer upload de versões de snapshots que não existem em um repositório de snapshots do Artifact Registry, mas não é possível substituir uma versão que já existe no repositório.
Os snapshots não exclusivos são um recurso do Maven 2. O Maven 3 sempre adiciona um carimbo de data/hora aos números de versão do snapshot para que cada versão seja exclusiva.
O Artifact Registry só oferece suporte a versões de snapshots não exclusivas em repositórios com uma política de versão de snapshot. Por padrão, os repositórios de snapshots aceitam apenas versões exclusivas de snapshots. Só é possível definir uma política de versão ao criar o repositório.
Para descobrir as configurações da política de versão de um repositório, execute o seguinte comando:
gcloud artifacts repositories describe REPOSITORY \
[--project=PROJECT] \
[--location=LOCATION]
Onde
- REPOSITORY é o ID do repositório. Se você tiver configurado um repositório do Artifact Registry padrão, ele será usado quando essa sinalização for omitida no comando.
- PROJECT é o ID do projeto. Se essa sinalização for omitida, o projeto padrão ou atual é usado.
- LOCATION é o local regional ou multirregional do repositório.
A saída do comando inclui informações sobre a política de versão
em mavenConfig
. No exemplo a seguir, o repositório tem uma política de versão de snapshot, e os snapshots não podem substituir versões idênticas no repositório.
Encryption: Google-managed key
createTime: '2021-09-23T19:39:10.897404Z'
format: MAVEN
mavenConfig:
allowSnapshotOverwrites: false
versionPolicy: SNAPSHOT