Lernen Sie detekt kennen , ein statisches Code-Analysetool für die Programmiersprache Kotlin . Besuchen Sie die Projektwebsite für Installationsanleitungen, Regelbeschreibungen, Konfigurationsoptionen und mehr.
Code-Geruch-Analyse für Ihre Kotlin-Projekte.
Hochgradig konfigurierbare Regelsätze.
Generieren Sie Baselines, um bestehende Probleme für Legacy-Projekte zu unterdrücken und gleichzeitig sicherzustellen, dass keine neuen Probleme entstehen.
Unterdrücken Sie Probleme in Quelldateien mithilfe von @Suppress
-Annotationen.
Unterstützung für verschiedene Berichtsformate: HTML, Markdown, SARIF, XML (Checkstyle) und benutzerdefinierte Berichte.
Erweitern Sie die Erkennung mit benutzerdefinierten Regelsätzen und Berichten.
Komplexitätsberichte basierend auf Codezeilen, zyklomatischer Komplexität und Anzahl der Code-Smells.
Erstanbieter-Integration mit Gradle mit unserem Gradle-Plugin.
Eine Community von Plugins von Drittanbietern, die der Erkennung weitere Regeln und Funktionen hinzufügt.
Änderungsprotokoll und Migrationsleitfäden
Verfügbare CLI-Optionen
Regelsatz und Regelbeschreibungen
Benutzerdefinierte Regeln schreiben und Detekt erweitern
Unterdrücken von Problemen im Code
Unterdrückung von Problemen über die Baseline-Datei
Detekt. konfigurieren
Beispiele für Gradle-Integrationen:
Multiprojekt (Kotlin DSL)
Einzelprojekt (Groovy DSL)
einzelnes Projekt (inoffizielles Maven-Plugin)
curl -sSLO https://github.com/detekt/detekt/releases/download/v[version]/detekt-cli-[version]-all.jar java -jar detekt-cli-[version]-all.jar --help
Weitere Möglichkeiten zur Installation von detekt finden Sie hier
Plugins { id("io.gitlab.arturbosch.detekt") version "[version]"} Repositories { mavenCentral() } detekt { buildUponDefaultConfig = true // defaultsallRules = false vorkonfigurieren // alle verfügbaren (auch instabilen) Regeln aktivieren.config.setFrom("$projectDir/config/detekt.yml") // auf Ihre benutzerdefinierte Konfiguration verweisen und die auszuführenden Regeln definieren, wobei die Standardverhaltensbasislinie überschrieben wird = file("$projectDir/config/baseline.xml") // eine Möglichkeit, Probleme vor der Einführung von detekt zu unterdrücken} task.withType().configureEach { Berichte { html.required.set(true) // Ergebnisse in Ihrem Browser mit Struktur und Code-Snippets beobachten https://sarifweb.azurewebsites.net/) zur Unterstützung von Integrationen mit GitHub Code Scanningmd.required.set(true) // einfaches Markdown-Format} }// Groovy DSLtasks.withType(Detekt).configureEach { jvmTarget = "1.8"} task.withType(DetektCreateBaselineTask).configureEach { jvmTarget = "1.8"}// oder// Kotlin DSLtasks.withType ().configureEach { jvmTarget = "1.8"} task.withType ().configureEach { jvmTarget = "1.8"}
Siehe Maven Central für Veröffentlichungen und Sonatype für Snapshots.
Wenn Sie eine SNAPSHOT-Version verwenden möchten, finden Sie weitere Informationen auf dieser Dokumentationsseite.
Gradle 6.8.3+ ist die Mindestanforderung. Die empfohlenen Versionen zusammen mit den anderen empfohlenen Tools-Versionen sind jedoch:
Erkannte Version | Gradle | Kotlin | AGP | Java-Zielniveau | JDK Max-Version |
---|---|---|---|---|---|
1.23.7 | 8.10 | 2.0.10 | 8.5.2 | 1.8 | 21 |
Die Liste der empfohlenen Versionen für frühere Detekt-Versionen finden Sie hier.
detekt selbst stellt einen Wrapper für ktlint als formatting
bereit, der einfach zur Gradle-Konfiguration hinzugefügt werden kann:
Abhängigkeiten { detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:[version]") }
Ebenso sind für detekt von detekt zusätzliche Regelsätze verfügbar:
Abhängigkeiten { detektPlugins("io.gitlab.arturbosch.detekt:detekt-rules-libraries:[version]") detektPlugins("io.gitlab.arturbosch.detekt:detekt-rules-ruleauthors:[version]") }
Weitere Informationen finden Sie auf dem Detekt-Marktplatz.
Ebenso können benutzerdefinierte Erweiterungen zur Erkennung hinzugefügt werden.
Siehe BEITRAGEN
Vielen Dank an alle Menschen, die zu detekt beigetragen haben!
Wie erwähnt in...
Für Detekt 2.0 und darüber hinaus!
droidcon London 2021 – Detekt – State of the Union
KotlinConf 2018 – Safe(r) Kotlin Code – Statische Analysetools für Kotlin von Marvin Ramin
droidcon NYC 2018 – Statische Code-Analyse für Kotlin
Kotlin über Code-Qualitätstools – von @vanniktech Folienpräsentation
Detekt in den Workflow integrieren
Überprüfen Sie die Qualität des Kotlin-Codes
Statische Kotlin-Analysetools
Riechen Sie es immer noch?: Eine vergleichende Studie zwischen Java und der Kotlin-Sprache von Flauzino et al.
Mit Detekt Software-Antipatterns vorbeugen
Integrationen:
IntelliJ-Integration
SonarQube-Integration
TCA-Integration (Tencent CodeAnalysis).
Codacy
Gradle-Plugin, das Error Prone, Checkstyle, PMD, CPD, Lint, Detekt und Ktlint konfiguriert
Violations Lib ist eine Java-Bibliothek zum Parsen von Berichtsdateien wie der statischen Codeanalyse.
Sputnik ist ein kostenloses Tool zur statischen Codeüberprüfung und bietet Unterstützung für Detekt
Detekt Maven-Plugin, das die Detekt-CLI umschließt
Detekt Bazel-Plugin, das die Detekt-CLI umschließt
Gradle-Plugin, das die GitHub-PR-Prüfung und die automatische Kommentierung von Verstößen erleichtert
Codefaktor
GitHub-Aktion: Alle erkennen
GitHub-Aktion: Setup erkannt
Benutzerdefinierte Regeln und Berichte von Drittanbietern finden Sie auf unserem Detekt-Marktplatz .
JetBrains – Erstellen von IntelliJ + Kotlin
PMD & Checkstyle & ktlint – Ideen für Schwellenwerte und Stilregeln