
Einfache Einrichtung von statischen Analysetools für Android- und Java-Projekte.
⚠️ Ein Fork dieses Projekts wird unter https://github.com/GradleUp/static-analysis-plugin/ gepflegt Bitte migrieren Sie stattdessen zur Plugin-ID
com.gradleup.static-analysis.
Ein Gradle-Plugin, um einfach das gleiche Setup von statischen Analysetools auf verschiedene Android-, Java- oder Kotlin-Projekte anzuwenden.
Unterstützt Task Configuration Avoidance, sodass Sie bei Verwendung dieses Plugins keine zusätzliche Zeit bei der Build-Geschwindigkeit haben!
Gradle unterstützt viele beliebte statische Analysetools (Checkstyle, PMD, FindBugs usw.) über eine Reihe integrierter Plugins. Die Verwendung dieser Plugins in einem Android-Modul erfordert eine zusätzliche Einrichtung, um die Unterschiede zwischen dem vom Android-Plugin verwendeten Modell und dem des Java-Plugins auszugleichen.
Das gradle-static-analysis-plugin zielt darauf ab, Folgendes bereitzustellen:
Das Plugin unterstützt verschiedene statische Analysetools für Java-, Kotlin- und Android-Projekte:
CheckstylePMDFindBugs [VERALTET] [Entfernt in Gradle 6.0]SpotBugsDetektAndroid LintKtLintBitte beachten Sie, dass die Verfügbarkeit der Tools von dem Projekt abhängt, auf das das Plugin angewendet wird. Weitere Details finden Sie auf der Seite unterstützte Tools.
Für alle in Betracht gezogenen Tools verweisen wir auf die Issues.
Android-Projekte verwenden ein Gradle-Modell, das nicht mit dem Java-Modell kompatibel ist, das von den integrierten Plugins für statische Analysetools unterstützt wird. Die Anwendung von gradle-static-analysis-plugin auf Ihr Android-Projekt stellt sicher, dass alle notwendigen Tasks erstellt und korrekt konfiguriert werden, ohne zusätzlichen Aufwand.
Wenden Sie das Plugin von jCenter als Classpath-Abhängigkeit an
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.novoda:gradle-static-analysis-plugin:1.2'
}
}
apply plugin: 'com.novoda.static-analysis'
oder aus dem Gradle Plugins Repository:
plugins {
id 'com.novoda.static-analysis' version '1.2'
}
Eine typische Konfiguration für das Plugin sieht wie folgt aus:
staticAnalysis {
penalty {
maxErrors = 0
maxWarnings = 0
}
checkstyle { }
pmd { }
findbugs { }
spotbugs { }
detekt { }
lintOptions { }
}
Dies aktiviert alle Tools mit ihren Standardeinstellungen und erstellt die Aufgabe evaluateViolations. Das Ausführen der Aufgabe ./gradlew evaluateViolations führt alle konfigurierten Tools aus und gibt die Berichte auf der Konsole aus. Für weiterführende Konfigurationen verweisen wir auf die Seiten fortgeschrittene Nutzung und unterstützte Tools.
Es stehen zwei Android-Beispielprojekte zur Verfügung: eines besteht aus einer normalen App – verfügbar hier – und das andere umfasst ein Multi-Modul-Setup, verfügbar hier. Beide Beispielprojekte zeigen ein Setup mit Checkstyle, FindBugs, SpotBugs, PMD, Lint, Ktlint und Detekt.
Snapshot-Builds von develop werden automatisch in ein Repository bereitgestellt, das nicht mit JCenter synchronisiert ist. Um einen Snapshot-Build zu verwenden, fügen Sie ein zusätzliches Maven-Repository wie folgt hinzu:
repositories {
maven {
url 'https://dl.bintray.com/novoda-oss/snapshots/'
}
}
Die neueste Snapshot-Version finden Sie unter diesem Link.
Dieses Projekt wird routinemäßig von vielen Novoda-Projekten und anderen externen Projekten ohne bekannte kritische Probleme verwendet.
Zukünftige Verbesserungen und neue Tool-Integrationen finden Sie im Issue-Tracker des Repositorys.