Gerenciar pacotes Java

Nesta página, descrevemos 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

  1. Se não existir um repositório de destino, crie um novo repositório.
  2. Verifique se você tem as permissões necessárias para o repositório.
  3. 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.
  4. (Opcional) Configure padrões para comandos gcloud.

Funções exigidas

Para ter 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:

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 usando papéis personalizados ou 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 Google Cloud ou gcloud:

Console

  1. Abra a página Repositórios no console do Google Cloud .

    Abrir a página Repositórios

  2. Na lista de repositórios, clique no repositório apropriado.

    A página Pacotes lista os pacotes no repositório.

  3. 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 esta 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.

Listar arquivos

Modos de repositório:padrão, remoto

É possível listar arquivos em um repositório, em todas as versões de um pacote especificado ou 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
O comando a seguir lista os arquivos na versão 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

  1. 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 pacote artifact 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.

  2. Crie o projeto Java.

    mvn compile
    

Gradle

  1. 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 pacote artifact 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'
    }
    
  2. Crie o projeto Java.

    gradle build
    

Para repositórios padrão, você baixa um pacote diretamente do repositório.

Para um repositório remoto, faça o download de uma cópia em cache do pacote e das dependências dele. Se não houver uma cópia em cache, o repositório remoto vai baixar o pacote da origem upstream e armazená-lo em cache antes de disponibilizá-lo para você. Para verificar se o repositório remoto recuperou os pacotes da fonte upstream, confira a lista de pacotes no repositório.

Para um repositório virtual, o Artifact Registry pesquisa nos repositórios upstream o pacote solicitado.

  • Os repositórios remotos upstream vão baixar e armazenar em cache o pacote solicitado se não houver uma cópia em cache. Os repositórios virtuais apenas veiculam 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 como 100
  • secondary-repo1: prioridade definida como 80.
  • secondary-repo2: prioridade definida como 80.
  • test-repo: prioridade definida como 20.

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 vai pesquisar nesses repositórios em seguida. Como ambos têm o mesmo valor de prioridade, o Artifact Registry pode veicular um pacote de qualquer repositório se a versão estiver disponível nos dois.

test-repo tem o menor valor de prioridade e vai veicular um artefato armazenado se nenhum dos outros repositórios upstream tiver esse artefato.

Como excluir pacotes e versões

Modos de repositório:padrão, remoto

É possível excluir um pacote e todas as versões dele ou uma versão específica.

  • Depois de excluir um pacote, não é possível desfazer a ação.
  • Para repositórios remotos, apenas a cópia em cache do pacote é excluída. A fonte upstream não é afetada. Se você excluir um pacote em cache, o Artifact Registry vai fazer o download e armazenar em cache novamente na próxima vez que o repositório receber uma solicitação para a mesma versão do pacote.

Before you delete a package or package version, verify that any you have communicated or addressed any important dependencies on it.

To delete a package:

Console

  1. Open the Repositories page in the Google Cloud console.

    Abrir a página Repositórios

  2. In the repository list, click the appropriate repository.

    The Packages page lists the packages in the repository.

  3. Select the package that you want to delete.

  4. Click DELETE.

  5. In the confirmation dialog box, click DELETE.

gcloud

Run the following command:

gcloud artifacts packages delete PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] [--async]

Replace the following:

  • PACKAGE is the name of the package in the repository.
  • REPOSITORY is the name of the repository. If you configured a default repository, then you can omit this flag to use the default.
  • LOCATION is the regional or multi-regional location of the repository. Use this flag to view repositories in a specific location. If you configured a default location, then you can omit this flag to use the default.

The --async flag causes the command to return immediately, without waiting for the operation in progress to complete.

To delete versions of a package:

Console

  1. Open the Repositories page in the Google Cloud console.

    Abrir a página Repositórios

  2. In the repository list, click the appropriate repository.

    The Packages page lists the packages in the repository.

  3. Click a package to view versions of that package.

  4. Select versions that you want to delete.

  5. Click DELETE.

  6. In the confirmation dialog box, click DELETE.

gcloud

Run the following command:

gcloud artifacts versions delete VERSION \
    --package=PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] \
    [--async]

Replace the following:

  • VERSION is the name of the version to delete.
  • PACKAGE is the name of the package in the repository.
  • REPOSITORY is the name of the repository. If you configured a default repository, then you can omit this flag to use the default.
  • LOCATION is the regional or multi-regional location of the repository. Use this flag to view repositories in a specific location. If you configured a default location, then you can omit this flag to use the default.

The --async flag causes the command to return immediately, without waiting for the operation in progress to complete.

A seguir