
Configuration facile des outils d'analyse statique pour les projets Android et Java.
⚠️ Un fork de ce projet est maintenu sur https://github.com/GradleUp/static-analysis-plugin/ Veuillez migrer en utilisant l'identifiant de plugin
com.gradleup.static-analysisà la place.
Un plugin Gradle pour appliquer facilement la même configuration d'outils d'analyse statique à travers différents projets Android, Java ou Kotlin.
Prend en charge l'Évitement de configuration de tâche afin que vous ayez un surcoût nul dans les vitesses de build lorsque vous utilisez ce plugin !
Gradle prend en charge de nombreux outils d'analyse statique populaires (Checkstyle, PMD, FindBugs, etc.) via un ensemble de plugins intégrés. L'utilisation de ces plugins dans un module Android nécessitera une configuration supplémentaire pour compenser les différences entre le modèle adopté par le plugin Android par rapport à celui Java.
L'objectif de gradle-static-analysis-plugin est de fournir :
Le plugin prend en charge divers outils d'analyse statique pour les projets Java, Kotlin et Android :
CheckstylePMDFindBugs [DEPRECATED] [Removed in Gradle 6.0]SpotBugsDetektAndroid LintKtLintVeuillez noter que la disponibilité des outils dépend du projet auquel le plugin est appliqué. Pour plus de détails, veuillez vous référer à la page outils pris en charge.
Pour tous les outils à l'étude, veuillez consulter les issues.
Les projets Android utilisent un modèle Gradle qui n'est pas compatible avec celui Java, pris en charge par les plugins d'outils d'analyse statique intégrés.
L'application de gradle-static-analysis-plugin à votre projet Android garantira que toutes les tâches nécessaires sont créées et correctement configurées sans aucun tracas supplémentaire.
Appliquez le plugin depuis jCenter en tant que dépendance de classpath
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.novoda:gradle-static-analysis-plugin:1.2'
}
}
apply plugin: 'com.novoda.static-analysis'
ou depuis le Dépôt des plugins Gradle :
plugins {
id 'com.novoda.static-analysis' version '1.2'
}
Une configuration typique du plugin ressemblera à :
staticAnalysis {
penalty {
maxErrors = 0
maxWarnings = 0
}
checkstyle { }
pmd { }
findbugs { }
spotbugs { }
detekt { }
lintOptions { }
}
Cela activera tous les outils avec leurs paramètres par défaut et créera la tâche evaluateViolations. L'exécution de la tâche ./gradlew evaluateViolations lancera tous les outils configurés et imprimera les rapports dans la console. Pour des configurations plus avancées, veuillez vous référer aux pages utilisation avancée et outils pris en charge.
Deux projets Android d'exemple sont disponibles, l'un consistant en une application classique - disponible ici - et l'autre comprenant une configuration multi-module disponible ici. Les deux projets d'exemple présentent une configuration mettant en œuvre Checkstyle, FindBugs, SpotBugs, PMD, Lint, Ktlint et Detekt.
Les builds snapshot depuis develop sont automatiquement déployés vers un dépôt qui n'est pas synchronisé avec JCenter.
Pour consommer un build snapshot, ajoutez un dépôt maven supplémentaire comme suit :
repositories {
maven {
url 'https://dl.bintray.com/novoda-oss/snapshots/'
}
}
Vous pouvez trouver la dernière version snapshot en suivant ce lien.
Ce projet est utilisé régulièrement par de nombreux projets Novoda et par d'autres projets externes sans problèmes critiques connus.
Les améliorations futures et les nouvelles intégrations d'outils peuvent être trouvées sur le gestionnaire de tickets du dépôt.