Crie e teste aplicações Java

Esta página explica como usar o Cloud Build para criar e testar aplicações baseadas em Java, armazenar artefactos criados num repositório Maven no Artifact Registry e gerar informações de proveniência da compilação.

Antes de começar

Usar a imagem maven

Pode configurar o Cloud Build para criar aplicações Java através da imagem maven do Docker Hub.

Para executar as suas tarefas na imagem maven, adicione um passo à configuração de compilação com os seguintes campos:

  • name: defina o valor deste campo como maven ou maven:<tag>, em que a etiqueta representa a versão. Se não especificar a etiqueta de imagem, o Cloud Build usa a imagem latest por predefinição.
  • entrypoint: a definição deste campo substitui o ponto de entrada predefinido da imagem referenciada em name. Defina o valor deste campo como mvn para invocar mvn como o ponto de entrada da etapa de compilação e executar comandos mvn.
  • args: o campo args de um passo de compilação recebe uma lista de argumentos e transmite-os à imagem referenciada pelo campo name.

O passo de compilação seguinte especifica o entrypoint para a imagem maven etiquetada como 3.3-jdk-8 e imprime a versão da ferramenta de compilação:

          steps:
          - name: maven:3.3-jdk-8
            entrypoint: mvn
            args: ['--version']

Configurar compilações Java

  1. No diretório raiz do projeto, crie um ficheiro de configuração de compilação denominado cloudbuild.yaml.

  2. Executar testes: o maven fornece o maven test, que transfere dependências, cria as aplicações e executa todos os testes especificados no seu código-fonte. O campo args de um passo de compilação recebe uma lista de argumentos e transmite-os à imagem referenciada pelo campo name.

    No ficheiro de configuração de compilação, adicione test ao campo args para invocar test em maven:

         steps:
         - name: maven:3.3-jdk-8
           entrypoint: mvn
           args: ['test']
    
  3. Empacote a aplicação: para empacotar a aplicação num ficheiro JAR para a sua imagem maven, especifique o comando package no campo args. O comando package cria um ficheiro JAR em /workspace/target/.

    O seguinte passo de compilação compacta a sua aplicação Java:

         steps:
         - name: maven:3.3-jdk-8
           entrypoint: mvn
           args: ['package','-Dmaven.test.skip=true']
    
  4. Carregue para o Artifact Registry:

    No ficheiro de configuração de compilação, use o campo mavenArtifacts para especificar o caminho da aplicação e o repositório Maven no Artifact Registry:

    artifacts:
      mavenArtifacts:
      - repository: 'https://location-maven.pkg.dev/project-id/repository-name'
        path: 'app-path'
        artifactId: 'build-artifact'
        groupId: 'group-id'
        version: 'version'
    

    Substitua os seguintes valores:

    • location: a localização do seu repositório no Artifact Registry.
    • project-id: o ID do Google Cloud projeto que contém o seu repositório do Artifact Registry.
    • repository-name: o nome do seu repositório Maven no Artifact Registry.
    • app-path: o caminho para a sua aplicação comprimida.
    • build-artifact: o nome do ficheiro do pacote criado a partir do passo de compilação.
    • group-id: identifica exclusivamente o seu projeto em todos os projetos Maven, no formato com.mycompany.app. Para mais informações, consulte o guia do Maven sobre convenções de nomenclatura.
    • version: o número da versão da sua aplicação, formatado em números e pontos, como 1.0.1.
  5. Opcional: ative a geração de proveniência

    O Cloud Build pode gerar metadados de proveniência de compilação Supply chain Levels for Software Artifacts (SLSA) validáveis para ajudar a proteger a sua pipeline de integração contínua.

    Para ativar a geração de proveniência, adicione requestedVerifyOption: VERIFIED à secção options no seu ficheiro de configuração.

  6. Inicie a compilação: manualmente ou usando acionadores de compilação.

    Quando a compilação estiver concluída, pode ver os detalhes do repositório no Artifact Registry.

    Também pode ver metadados de proveniência da compilação e validar a proveniência.

O que se segue?