Saiba mais sobre as etapas de solução de problemas que podem ser úteis se você se deparar com 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 a um projeto pai em um projeto Maven filho usando o
<parent>
. - Dependências de plug-ins armazenadas no Artifact Registry.
Se o seu projeto precisa resolver essas dependências, você precisa usar o extensões principais para garantir que o Maven possa localizar plug-ins e arquivos POM pais.
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.3</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 a números de versão de snapshot para que cada versão de snapshot seja única.
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. Repositórios de snapshots por padrão aceitam apenas versões de snapshot exclusivas. 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
abaixo de mavenConfig
. No exemplo a seguir, o repositório tem um snapshot
os snapshots e a política de versão não podem substituir versões idênticas na
repositório de dados.
Encryption: Google-managed key
createTime: '2021-09-23T19:39:10.897404Z'
format: MAVEN
mavenConfig:
allowSnapshotOverwrites: false
versionPolicy: SNAPSHOT