Técnicas de Depuração do Gradle

Aug 30, 2024

Depurando Builds do Gradle

Introdução

  • Depurar builds do Gradle pode ser frustrante.
  • Vídeo discute 3 maneiras de depurar o Gradle de forma eficaz.

Depurando com o IntelliJ IDEA

  • IntelliJ IDEA é uma IDE popular para desenvolvimento em Java e Gradle.
  • Exemplo: Grande erro apareceu: "Exceção do Gradle sistema operacional não suportado."
    • Passos para Depurar:
      1. Abra o projeto e localize o erro.
      2. Defina um ponto de interrupção clicando no lado esquerdo do código.
      3. Abra o painel do Gradle (lado direito), selecione uma tarefa, clique com o botão direito e pressione o botão de depuração.
      4. A execução para no ponto de interrupção.
      5. Utilize as ferramentas de depuração da IDE:
        • Pule linhas (F8).
        • Verifique valores de variáveis.
        • Navegue pela pilha para identificar erros.

Depurando um Plugin com Linha de Comando

  • Cenário: Depurando dentro de um plugin, por exemplo, com.palantir.docker plugin.
  • Passos para Depurar:
    1. Execute o build com uma flag de depuração: gradle w docker -Dorg.gradle.debug=true.
    2. A execução é suspensa, aguardando por um depurador remoto.
    3. Abra o projeto do plugin, navegue até o código e defina um ponto de interrupção.
    4. Vá para "Configurações de Execução de Depuração," adicione uma configuração de depuração remota na porta 5005.
    5. Selecione o classpath correto do módulo e conecte-se.
    6. Use as ferramentas de depuração da IDE para investigar o código do plugin.

Depurando um Teste de Plugin do Gradle

  • Contexto: Escrevendo testes para plugins do Gradle usando o Gradle Runner.
  • Problema: Teste falha sem parar nos pontos de interrupção.
  • Solução:
    1. Use gradle runner para criar um build temporário.
    2. Adicione .withDebug(true) na configuração do seu teste.
    3. Execute o teste em modo de depuração para pausar nos pontos de interrupção.

Resumo

  • Flags e Ferramentas Chave:
    • Use -Dorg.gradle.debug=true para depuração remota.
    • Use .withDebug(true) para depurar testes de plugins com o Gradle Runner.
  • Benefícios da IDE: Acesso a ferramentas de depuração abrangentes, pule pelo código e inspecione o fluxo de execução.

Conclusão

  • Esses métodos fornecem abordagens estruturadas para resolver problemas de build do Gradle.
  • Incentivo a compartilhar dicas ou fazer perguntas nos comentários.

  • Fechamento: Obrigado por assistir, e estou ansioso para o próximo episódio no Tom Gregory Tech.