{"meta":{"title":"Compilar e testar Java com o Gradle","intro":"Saiba como criar um fluxo de trabalho de CI (integração contínua) em GitHub Actions para criar e testar seu projeto de Java com o Gradle.","product":"GitHub Actions","breadcrumbs":[{"href":"/pt/actions","title":"GitHub Actions"},{"href":"/pt/actions/tutorials","title":"Tutoriais"},{"href":"/pt/actions/tutorials/build-and-test-code","title":"Criar e testar código"},{"href":"/pt/actions/tutorials/build-and-test-code/java-with-gradle","title":"Java com Gradle"}],"documentType":"article"},"body":"# Compilar e testar Java com o Gradle\n\nSaiba como criar um fluxo de trabalho de CI (integração contínua) em GitHub Actions para criar e testar seu projeto de Java com o Gradle.\n\n## Introdução\n\nEste guia mostra como criar um fluxo de trabalho que executa a CI (integração contínua) para seu projeto de Java usando o sistema de build Gradle. O fluxo de trabalho que você criar permitirá que você veja quando commits em um pull request gerarão falhas de criação ou de teste em comparação com o seu branch-padrão. Essa abordagem pode ajudar a garantir que seu código seja sempre saudável. Você pode estender seu fluxo de trabalho de CI para armazenar arquivos em cache e carregar artefatos de uma execução de fluxo de trabalho.\n\nExecutores hospedados em GitHub têm um cache de ferramentas com software pré-instalado que inclui kits de desenvolvimento Java (JDKs) e Gradle. Para obter uma lista de softwares e das versões pré-instaladas para JDK e Gradle, confira [Executores hospedados no GitHub](/pt/actions/using-github-hosted-runners/about-github-hosted-runners#supported-software).\n\n## Pré-requisitos\n\nVocê deve estar familiarizado com o YAML e a sintaxe do GitHub Actions. Para saber mais, veja:\n\n* [Sintaxe de fluxo de trabalho para o GitHub Actions](/pt/actions/using-workflows/workflow-syntax-for-github-actions)\n* [Escrevendo fluxos de trabalho](/pt/actions/learn-github-actions)\n\nRecomendamos que você tenha uma compreensão básica do Java e da estrutura Gradle. Para obter mais informações, consulte o [Manual do Usuário do Gradle](https://docs.gradle.org/current/userguide/userguide.html).\n\n## Usando um modelo de fluxo de trabalho do Gradle\n\nPara uma introdução rápida, adicione um modelo de fluxo de trabalho ao diretório `.github/workflows` do repositório.\n\nO GitHub fornece um modelo de fluxo de trabalho do Gradle que deve funcionar para a maioria dos projetos Java com Gradle. As seções subsequentes deste guia fornecem exemplos de como você pode personalizar esse modelo de fluxo de trabalho.\n\n1. Em GitHub, acesse a página principal do repositório.\n\n2. No nome do repositório, clique em **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-play\" aria-label=\"play\" role=\"img\"><path d=\"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z\"></path></svg> Actions**.\n\n   ![Captura de tela das guias do repositório \"github/docs\". A guia \"Ações\" está realçada com um contorno laranja.](/assets/images/help/repository/actions-tab-global-nav-update.png)\n\n3. Se você já tiver um fluxo de trabalho no repositório, clique em **Novo fluxo de trabalho**.\n\n4. A página \"Escolher um fluxo de trabalho\" mostra uma seleção de modelos de fluxo de trabalho recomendados. Pesquise \"Java com Gradle\".\n\n5. No fluxo de trabalho \"Java com Gradle\", clique em **Configure**.\n   Este fluxo de trabalho realiza as etapas a seguir:\n\n6. Verifica uma cópia do repositório do projeto.\n\n7. Define o Java JDK.\n\n8. Configura o ambiente Gradle. A ação [`gradle/actions/setup-gradle`](https://github.com/gradle/actions) trata do estado de cache entre as execuções de fluxos de trabalho e fornece um resumo com detalhes de todas as execuções do Gradle.\n\n9. A etapa “Compilar com o Gradle” executa a tarefa `build` usando o [Gradle Wrapper](https://docs.gradle.org/current/userguide/gradle_wrapper.html).\n\n10. Edite o fluxo de trabalho conforme necessário. Por exemplo, altere a versão do Java.\n\n    > \\[!NOTE]\n    >\n    > * Esse modelo de fluxo de trabalho contém uma ação que não é certificada pelo GitHub. Elas são fornecidas por terceiros e regidas por termos de serviço, política de privacidade e documentação de suporte separados.\n    > * Caso use ações de terceiros, você deverá usar uma versão especificada por um SHA de commit. Se a ação for revisada e você quiser usar a versão mais recente, será necessário atualizar o SHA. Você pode especificar uma versão fazendo referência a uma tag ou branch, mas a ação pode ser alterada sem aviso. Para saber mais, confira [Referência de uso seguro](/pt/actions/security-guides/security-hardening-for-github-actions#using-third-party-actions).\n\n11. Clique em **Confirmar alterações**.\n\nO arquivo de fluxo de trabalho `gradle.yml` é adicionado ao diretório `.github/workflows` do seu repositório.\n\n### Como especificar a versão e a arquitetura da JVM\n\nO modelo de fluxo de trabalho configura o `PATH` para conter OpenJDK 8 para a plataforma x64. Se você quiser usar uma versão diferente do Java, ou escolher uma arquitetura diferente (`x64` ou `x86`), você pode usar a ação `setup-java` para escolher um ambiente de execução Java diferente.\n\nPor exemplo, para usar a versão 11 do JDK fornecida pelo Adoptium para a plataforma x64, você poderá usar a ação `setup-java` e configurar os parâmetros `java-version`, `distribution` e `architecture` para `'11'`, `'temurin'` e `x64`.\n\n```yaml copy\nsteps:\n  - uses: actions/checkout@v6\n  - name: Set up JDK 11 for x64\n    uses: actions/setup-java@v4\n    with:\n      java-version: '11'\n      distribution: 'temurin'\n      architecture: x64\n```\n\nPara obter mais informações, confira a ação [`setup-java`](https://github.com/actions/setup-java).\n\n## Criar e testar seu código\n\nVocê pode usar os mesmos comandos usados localmente para criar e testar seu código.\n\nO modelo de fluxo de trabalho executará a tarefa `build` por padrão. Na configuração-padrão do Gradle, este comando irá baixar dependências, criar classes, executar testes e classes de pacotes em seu formato distribuível, como, por exemplo, um arquivo JAR.\n\nSe você usa comandos diferentes para criar seu projeto ou se você desejar usar uma atividade diferente, você poderá especificá-los. Por exemplo, você pode querer executar a tarefa `package` que está configurada no arquivo `ci.gradle`.\n\n```yaml copy\n# Esse fluxo de trabalho usa ações que não são certificadas pelo GitHub.\n# São fornecidas por terceiros e regidas por\n# termos de serviço, política de privacidade e suporte separados\n# online.\nsteps:\n  - uses: actions/checkout@v6\n  - uses: actions/setup-java@v4\n    with:\n      java-version: '17'\n      distribution: 'temurin'\n\n  - name: Setup Gradle\n    uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2\n\n  - name: Build with Gradle\n    run: ./gradlew -b ci.gradle package\n```\n\n## Memorizar dependências\n\nSuas dependências de build podem ser armazenadas em cache para acelerar as execuções dos seus fluxos de trabalho. Após uma execução bem-sucedida, `gradle/actions/setup-gradle` armazena em cache partes importantes do diretório base do usuário do Gradle. Em trabalhos futuros, o cache será restaurado para que os scripts de compilação não precisem ser recalculados e as dependências não precisem ser baixadas a partir de repositórios remotos de pacotes.\n\nO cache é habilitado por padrão quando a ação `gradle/actions/setup-gradle` é usada. Para obter mais informações, consulte [`gradle/actions/setup-gradle`](https://github.com/gradle/actions/blob/main/setup-gradle/README.md#caching-build-state-between-jobs).\n\n## Empacotar dados do fluxo de trabalho como artefatos\n\nDepois que o build tiver sido bem-sucedido e seus testes tiverem sido aprovados, talvez você queira carregar os pacotes de Java resultantes como um artefato de build. Isso armazenará os pacotes criados como parte da execução do fluxo de trabalho e permitirá que você faça o download desses pacotes. Os artefatos podem ajudá-lo a testar e depurar os pull requests no seu ambiente local antes de serem mesclados. Para saber mais, confira [Armazenar e compartilhar dados com artefatos de fluxo de trabalho](/pt/actions/using-workflows/storing-workflow-data-as-artifacts).\n\nEm geral, o Gradle criará arquivos de saída como JARs, EARs ou WARs no diretório `build/libs`. Você pode carregar o conteúdo desse diretório usando a ação `upload-artifact`.\n\n```yaml copy\n# Esse fluxo de trabalho usa ações que não são certificadas pelo GitHub.\n# São fornecidas por terceiros e regidas por\n# termos de serviço, política de privacidade e suporte separados\n# online.\nsteps:\n  - uses: actions/checkout@v6\n  - uses: actions/setup-java@v4\n    with:\n      java-version: '17'\n      distribution: 'temurin'\n\n  - name: Setup Gradle\n    uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2\n\n  - name: Build with Gradle\n    run: ./gradlew build\n\n  - name: Upload build artifacts\n    uses: actions/upload-artifact@v4\n    with:\n      name: Package\n      path: build/libs\n```"}