Detekt para Kotlin: guia completo com exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução ao Detekt: análise estática de código para Kotlin

\n\n

Detekt é uma poderosa ferramenta de análise estática de código para a linguagem de programação Kotlin. Diferente do compilador, que verifica a correção sintática, o Detekt analisa a estrutura, o estilo e possíveis problemas no seu código sem executá-lo. Isso permite identificar "code smells", violações de boas práticas, possíveis erros e problemas de desempenho nas fases iniciais do desenvolvimento.

\n\n

Para que serve o Detekt? Principalmente, para manter a alta qualidade da base de código. Em projetos grandes com muitos desenvolvedores, o estilo de código pode variar, dificultando a leitura e a manutenção. O Detekt automatiza a verificação da conformidade do código com regras definidas, tornando o código mais uniforme, previsível e menos propenso a erros. Ele se integra ao processo de build (Gradle, Maven) e pode ser executado automaticamente a cada commit ou build, evitando que código problemático entre no repositório.

\n\n

Os principais recursos do Detekt incluem:

\n
    \n
  • Detecção de "code smells": complexidade excessiva, métodos longos, classes grandes.
  • \n
  • Verificação de estilo: conformidade com convenções de nomenclatura, formatação.
  • \n
  • Identificação de possíveis erros: variáveis não utilizadas, exceções potenciais.
  • \n
  • Análise de desempenho: construções ineficientes, alocações desnecessárias.
  • \n
  • Personalização: você pode ativar/desativar regras, ajustar seus parâmetros e até escrever as suas próprias.
  • \n
\n\n

O Detekt é escrito em Kotlin e é o padrão de facto para análise estática no ecossistema Kotlin. Ele é ativamente mantido pela comunidade e usado em projetos grandes como Kotlin Compiler, Ktor e Exposed.

\n\n

Instalação do Detekt

\n\n

O Detekt não é instalado via pip install ou npm install, pois é uma ferramenta para o ecossistema Kotlin/JVM. As principais formas de instalação e integração são:

\n\n

1. Gradle Plugin (método recomendado)

\n

Adicione o plugin Detekt ao seu build.gradle.kts (ou build.gradle):

\n
// build.gradle.kts\nplugins {\n    id("io.gitlab.arturbosch.detekt") version "1.23.6" // Verifique a versão mais recente\n}\n\n// Configuração (opcional)\ndetekt {\n    buildUponDefaultConfig = true // Usar a configuração padrão como base\n    allRules = false // Não incluir todas as regras (incluindo experimentais)\n    config.setFrom("$projectDir/config/detekt.yml") // Caminho para sua configuração\n    baseline = file("$projectDir/config/baseline.xml") // Linha de base para suprimir erros antigos\n}\n\n// Conectar o Detekt à verificação antes do build\ntasks.check {\n    dependsOn(tasks.detekt)\n}\n
\n\n

2. Maven Plugin

\n

Para Maven, adicione o plugin no pom.xml:

\n
<plugin>\n    <groupId>io.gitlab.arturbosch.detekt</groupId>\n    <artifactId>detekt-maven-plugin</artifactId>\n    <version>1.23.6</version>\n    <configuration>\n        <buildUponDefaultConfig>true</buildUponDefaultConfig>\n    </configuration>\n    <executions>\n        <execution>\n            <goals>\n                <goal>check</goal>\n            </goals>\n        </execution>\n    </executions>\n</plugin>\n
\n\n

3. CLI (Interface de Linha de Comando)

\n

Você pode executar o Detekt pela linha de comando, baixando o arquivo JAR do GitHub Releases:

\n
java -jar detekt-cli-1.23.6.jar --input /caminho/para/seu/código/kotlin --config /caminho/para/config.yml --report xml:output.xml\n
\n\n

Início rápido com exemplo de código

\n\n

Vamos considerar um exemplo simples

Recommendations