Esta página descreve como adicionar, visualizar e excluir pacotes Java.
Se você quiser usar o sbt como uma ferramenta de build para Scala e Java em vez de usar o Maven ou o Gradle, há um plug-in sbt criado pela comunidade disponível. Esta documentação não descreve a configuração ou o uso de clientes Scala.
Antes de começar
- Se não existir um repositório de destino, crie um novo repositório.
- Verifique se você tem as permissões necessárias para o repositório.
- Verifique se você configurou a autenticação. Se você estiver usando um token de acesso, certifique-se de atualizar o token antes de se conectar ao repositório.
- (Opcional) Configure padrões para comandos gcloud.
Funções exigidas
Para conseguir as permissões necessárias para gerenciar pacotes, peça ao administrador para conceder a você os seguintes papéis do IAM no repositório:
-
Conferir pacotes ou arquivos em pacotes:
Leitor do Artifact Registry (
roles/artifactregistry.reader
) -
Faça o download ou instale pacotes:
Leitor do Artifact Registry (
roles/artifactregistry.reader
) -
Adicionar pacotes a um repositório:
Gravador do Artifact Registry (
roles/artifactregistry.writer
) -
Exclua pacotes:
Administrador do repositório do Artifact Registry (
roles/artifactregistry.repoAdmin
)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Como adicionar pacotes
Modos de repositório: padrão
Para adicionar pacotes ao repositório:
Maven
Use mvn deploy
e mvn release
para adicionar pacotes ao repositório.
Para implantar com êxito um projeto Maven que referencia um pai, é necessário que o projeto inclua o provedor Wagon do Artifact Registry em um arquivo de extensões principais, conforme descrito nas instruções de autenticação.
Use mvn deploy:deploy-file
para fazer upload de artefatos criados fora do
Maven.
Por exemplo, este comando de exemplo implanta example/external.jar
e o arquivo de
projeto example/pom.xml
no repositório
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 a integração com o Cloud Build, consulte Como integrar com o Cloud Build.
Gradle
Para publicar no repositório, seu arquivo build.gradle
precisa incluir
uma seção de publicações que defina os arquivos a fazer upload.
Use o comando gradle publish
para fazer upload de um pacote para o repositório.
Como visualizar pacotes e versões
Modos de repositório: padrão, remoto
Para conferir pacotes e versões de pacotes usando o console do Google Cloud
ou gcloud
:
Console
Abra a página Repositórios no console Google Cloud .
Na lista de repositórios, clique no repositório apropriado.
A página Pacotes lista os pacotes no repositório.
Clique em um pacote para visualizar as versões dele.
gcloud
Para listar pacotes em um repositório, execute o seguinte comando:
gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]
Substitua:
REPOSITORY
é o nome do repositório. Se você tiver configurado um repositório padrão, poderá omitir essa flag para usar o padrão.-
LOCATION
é o local regional ou multirregional do repositório. Se você tiver configurado um local padrão, poderá omitir essa flag para usar o padrão.
Para ver as versões de um pacote, execute o seguinte comando:
gcloud artifacts versions list --package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION]
Substitua:
PACKAGE
é o ID do pacote ou o identificador totalmente qualificado do pacote.REPOSITORY
é o nome do repositório. Se você tiver configurado um repositório padrão, poderá omitir essa flag para usar o padrão.-
LOCATION
é o local regional ou multirregional do repositório. Use essa flag para conferir repositórios em um local específico. Se você tiver configurado um local padrão, poderá omitir essa flag para usar o padrão.
Para repositórios remotos, a lista retornada precisa incluir todas as dependências diretas e transitivas.
Como listar arquivos
Modos de repositório: padrão, remoto
É possível listar arquivos em um repositório, arquivos em todas as versões de um pacote específico ou arquivos em uma versão específica de um pacote.
Para todos os comandos a seguir, é possível definir um número máximo de arquivos a serem retornados
adicionando a flag --limit
ao comando.
Para listar todos os arquivos no projeto, repositório e local padrão quando os valores padrão estiverem configurados:
gcloud artifacts files list
Para listar arquivos em um projeto, repositório e local especificados, execute o comando:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION
Para listar arquivos de todas as versões de um pacote específico:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE
Para listar arquivos de uma versão específica do pacote:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--version=VERSION
Substitua os seguintes valores:
LOCATION
: o local regional ou multirregional do repositório.PROJECT
: o ID do projeto do Google Cloud . Se o ID do projeto contiver dois pontos (:
), consulte Projetos com escopo de domínio.REPOSITORY
: o nome do repositório em que a imagem está armazenada.PACKAGE
: o nome do pacote.VERSION
: a versão do pacote.
Exemplos
Considere as seguintes informações do pacote:
- Projeto:
my-project
- Repositório:
my-repo
- Local do repositório:
us-west1
- Pacote:
my-app
O comando a seguir lista todos os arquivos no repositório my-repo
no
local us-west1
no projeto padrão:
gcloud artifacts files list \
--location=us-west1 \
--repository=my-repo
1.0
do pacote.
gcloud artifacts files list \
--project=my-project \
--location=us-west1 \
--repository=my-repo \
--package=my-app \
--version=1.0
Fazendo o download de pacotes
Modos de repositório: padrão, remoto, virtual
Para fazer o download de um artefato como parte da compilação, declare o artefato como uma dependência.
Maven
Declare os pacotes que você quer fazer o download no arquivo
pom.xml
do projeto. O exemplo a seguir declara a versão 1.0 do pacoteartifact
como uma dependência.<dependencies> <dependency> <groupId>group</groupId> <artifactId>artifact</artifactId> <version>1.0</version> </dependency> </dependencies>
Para saber mais sobre as dependências do Maven, consulte a introdução às dependências e a referência da dependência do Maven.
Crie o projeto Java.
mvn compile
Gradle
Declare os pacotes que você quer fazer o download no arquivo
build.gradle
do projeto. O exemplo a seguir declara a versão 1.0 do pacoteartifact
como uma dependência de compilação externa.Para saber mais sobre as dependências do Gradle, consulte a documentação do Gradle.
dependencies { compile group: 'group', name: 'artifact', version: '1.0' }
Crie o projeto Java.
gradle build
Para repositórios padrão, faça o download de um pacote diretamente do repositório.
Para um repositório remoto, você faz o download de uma cópia em cache do pacote e das dependências. Se uma cópia em cache não existir, o repositório remoto vai fazer o download do pacote da origem upstream e armazená-lo em cache antes de exibi-lo para você. É possível verificar se o repositório remoto recuperou os pacotes da origem upstream conferindo a lista de pacotes no repositório.
Para um repositório virtual, o Artifact Registry pesquisa o pacote solicitado nos repositórios upstream.
- Os repositórios remotos upstream vão fazer o download e armazenar em cache o pacote solicitado se não houver uma cópia em cache. Os repositórios virtuais só servem os pacotes solicitados, não os armazenam.
- Se você solicitar uma versão disponível em mais de um repositório upstream, o Artifact Registry vai escolher um repositório upstream para usar com base nas configurações de prioridade configuradas para o repositório virtual.
Por exemplo, considere um repositório virtual com as seguintes configurações de prioridade para repositórios upstream:
main-repo
: prioridade definida como100
secondary-repo1
: prioridade definida como80
.secondary-repo2
: prioridade definida como80
.test-repo
: prioridade definida como20
.
main-repo
tem o valor de prioridade mais alto, então o repositório virtual
sempre o pesquisa primeiro.
secondary-repo1
e secondary-repo2
têm prioridade definida como 80
. Se um
pacote solicitado não estiver disponível em main-repo
, o Artifact Registry
procurará esses repositórios em seguida. Como ambos têm o mesmo valor de prioridade,
o Artifact Registry pode escolher servir um pacote de qualquer repositório
se a versão estiver disponível em ambos.
test-repo
tem o menor valor de prioridade e vai servir um artefato armazenado se
nenhum dos outros repositórios upstream tiver.
Como excluir pacotes e versões
Modos de repositório: padrão, remoto
Você pode excluir um pacote e todas as versões dele ou excluir uma versão específica.
- Não é possível desfazer a exclusão de um pacote.
- Para repositórios remotos, apenas a cópia em cache do pacote é excluída. A origem upstream não é afetada. Se você excluir um pacote armazenado em cache, o Artifact Registry vai fazer o download e armazená-lo novamente na próxima vez que o repositório receber uma solicitação para a mesma versão do pacote.
Antes de excluir uma versão de pacote ou um pacote, verifique se você comunicou ou resolveu qualquer dependência importante nele.
Para excluir um pacote:
Console
Abra a página Repositórios no console Google Cloud .
Na lista de repositórios, clique no repositório apropriado.
A página Pacotes lista os pacotes no repositório.
Selecione o pacote que você quer excluir.
Clique em EXCLUIR.
Na caixa de diálogo de confirmação, clique em Excluir.
gcloud
Execute este comando:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Substitua:
PACKAGE
é o nome do pacote no repositório.REPOSITORY
é o nome do repositório. Se você tiver configurado um repositório padrão, poderá omitir essa flag para usar o padrão.-
LOCATION
é o local regional ou multirregional do repositório. Use essa flag para conferir repositórios em um local específico. Se você configurou um local padrão, poderá omitir essa flag para usar o padrão.
A flag --async
faz com que o comando seja retornado imediatamente,
sem aguardar a conclusão da operação em andamento.
Para excluir versões de um pacote:
Console
Abra a página Repositórios no console Google Cloud .
Na lista de repositórios, clique no repositório apropriado.
A página Pacotes lista os pacotes no repositório.
Clique em um pacote para visualizar as versões dele.
Selecione as versões que você quer excluir.
Clique em EXCLUIR.
Na caixa de diálogo de confirmação, clique em Excluir.
gcloud
Execute este comando:
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
Substitua:
VERSION
é o nome da versão a ser excluída.PACKAGE
é o nome do pacote no repositório.REPOSITORY
é o nome do repositório. Se você tiver configurado um repositório padrão, poderá omitir essa flag para usar o padrão.-
LOCATION
é o local regional ou multirregional do repositório. Use essa flag para conferir repositórios em um local específico. Se você configurou um local padrão, poderá omitir essa flag para usar o padrão.
A flag --async
faz com que o comando seja retornado imediatamente,
sem aguardar a conclusão da operação em andamento.
A seguir
- Saiba como gerenciar pacotes do Node.js
- Saiba como gerenciar pacotes Python
- Saiba mais sobre como gerenciar imagens de contêiner
- Fazer o download de arquivos individuais em um pacote