
Configuração fácil de ferramentas de análise estática para projetos Android e Java.
⚠️ Um fork deste projeto é mantido em https://github.com/GradleUp/static-analysis-plugin/ Por favor, migre usando o ID do plugin
com.gradleup.static-analysis.
Um plugin do Gradle para aplicar facilmente a mesma configuração de ferramentas de análise estática em diferentes projetos Android, Java ou Kotlin.
Suporta Task Configuration Avoidance para que você tenha zero sobrecarga na velocidade de compilação ao usar este plugin!
O Gradle suporta muitas ferramentas populares de análise estática (Checkstyle, PMD, FindBugs, etc.) através de um conjunto de plugins integrados. Usar esses plugins em um módulo Android exigirá uma configuração adicional para compensar as diferenças entre o modelo adotado pelo plugin Android em comparação com o plugin Java.
O gradle-static-analysis-plugin visa fornecer:
O plugin suporta várias ferramentas de análise estática para projetos Java, Kotlin e Android:
CheckstylePMDFindBugs [OBSOLETO] [Removido no Gradle 6.0]SpotBugsDetektAndroid LintKtLintObserve que a disponibilidade das ferramentas depende do projeto ao qual o plugin é aplicado. Para mais detalhes, consulte a página ferramentas suportadas.
Para todas as ferramentas em consideração, consulte issues.
Projetos Android usam um modelo do Gradle que não é compatível com o modelo Java, suportado pelos plugins de ferramentas de análise estática integrados.
Aplicar gradle-static-analysis-plugin ao seu projeto Android garantirá que todas as tarefas necessárias sejam criadas e configuradas corretamente
sem qualquer trabalho adicional.
Aplique o plugin do jCenter como uma dependência de classpath
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.novoda:gradle-static-analysis-plugin:1.2'
}
}
apply plugin: 'com.novoda.static-analysis'
ou do Repositório de Plugins do Gradle:
plugins {
id 'com.novoda.static-analysis' version '1.2'
}
Uma configuração típica para o plugin será semelhante a:
staticAnalysis {
penalty {
maxErrors = 0
maxWarnings = 0
}
checkstyle { }
pmd { }
findbugs { }
spotbugs { }
detekt { }
lintOptions { }
}
Isso habilitará todas as ferramentas com suas configurações padrão e criará a tarefa evaluateViolations. Executar a tarefa ./gradlew evaluateViolations rodará todas as ferramentas configuradas e exibirá os relatórios no console. Para configurações mais avançadas, consulte as páginas
uso avançado e ferramentas suportadas.
Existem dois projetos de exemplo Android disponíveis, um composto por um aplicativo comum - disponível aqui - e outro compreendendo uma configuração multimódulo disponível aqui. Ambos os projetos de exemplo demonstram uma configuração com Checkstyle, FindBugs, SpotBugs, PMD, Lint, Ktlint e Detekt.
Builds snapshot do branch develop são implantados automaticamente em um repositório que não é sincronizado com o JCenter.
Para consumir um build snapshot, adicione um repositório maven adicional da seguinte forma:
repositories {
maven {
url 'https://dl.bintray.com/novoda-oss/snapshots/'
}
}
Você pode encontrar a versão snapshot mais recente seguindo este link.
Este projeto é usado rotineiramente por muitos projetos da Novoda e por outros projetos externos, sem problemas críticos conhecidos.
Melhorias futuras e novas integrações de ferramentas podem ser encontradas no rastreador de issues do repositório.