Perkenalkan detekt , alat analisis kode statis untuk bahasa pemrograman Kotlin . Kunjungi situs web proyek untuk panduan instalasi, deskripsi aturan, opsi konfigurasi, dan banyak lagi.
Analisis bau kode untuk proyek Kotlin Anda.
Kumpulan aturan yang sangat dapat dikonfigurasi.
Menghasilkan garis dasar untuk mengatasi permasalahan yang ada pada proyek lama sambil memastikan tidak ada permasalahan baru yang muncul.
Mengatasi masalah pada file sumber menggunakan anotasi @Suppress
.
Dukungan untuk berbagai format laporan: HTML, Markdown, SARIF, XML (Checkstyle) dan laporan khusus.
Perluas deteksi dengan kumpulan aturan dan laporan khusus.
Laporan kompleksitas berdasarkan baris kode, kompleksitas siklomatik, dan jumlah bau kode.
Integrasi pihak pertama dengan Gradle dengan plugin Gradle kami.
Komunitas plugin pihak ketiga yang menambahkan lebih banyak aturan dan fitur untuk dideteksi.
Changelog dan panduan migrasi
Opsi CLI yang tersedia
Kumpulan aturan dan deskripsi aturan
Menulis aturan adat dan memperluas deteksi
Menekan masalah dalam kode
Menekan masalah melalui file dasar
Mengonfigurasi deteksi
Contoh contoh integrasi Gradle:
multi proyek (Kotlin DSL)
proyek tunggal (Groovy DSL)
proyek tunggal (plugin Maven tidak resmi)
curl -sSLO https://github.com/detekt/detekt/releases/download/v[version]/detekt-cli-[version]-all.jar java -jar deteksi-cli-[versi]-all.jar --help
Anda dapat menemukan cara lain untuk menginstal deteksi di sini
plugin { id("io.gitlab.arturbosch.detekt") versi "[versi]"} repositori { pakarPusat() } deteksi { buildUponDefaultConfig = true // prakonfigurasi defaultsallRules = false // aktifkan semua aturan yang tersedia (bahkan yang tidak stabil).config.setFrom("$projectDir/config/detekt.yml") // tunjuk ke konfigurasi khusus yang menentukan aturan yang akan dijalankan, menimpa garis dasar perilaku default = file("$projectDir/config/baseline.xml") // cara mengatasi masalah sebelum memperkenalkan deteksi} tugas.withType().configureEach { laporan { html.required.set(true) // amati temuan di browser Anda dengan struktur dan cuplikan kodexml.required.set(true) // format seperti checkstyle terutama untuk integrasi seperti Jenkinssarif.required.set(true) // format SARIF standar ( https://sarifweb.azurewebsites.net/) untuk mendukung integrasi dengan GitHub Code Scanningmd.required.set(true) // format Markdown sederhana} }// DSLtasks.withType(Detekt).configureEach yang asyik { jvmTarget = "1.8"} tugas.withType(DetektCreateBaselineTask).configureEach { jvmTarget = "1.8"}// atau// Kotlin DSLtasks.withType ().configureEach { jvmTarget = "1.8"} tugas.withType ().configureEach { jvmTarget = "1.8"}
Lihat maven central untuk rilis dan sonatype untuk snapshot.
Jika Anda ingin menggunakan versi SNAPSHOT, Anda dapat menemukan info lebih lanjut di halaman dokumentasi ini.
Gradle 6.8.3+ adalah persyaratan minimum. Namun, versi yang direkomendasikan bersama dengan versi alat lain yang direkomendasikan adalah:
Versi Deteksi | Gradle | Kotlin | AGP | Tingkat Target Jawa | Versi JDK Maks |
---|---|---|---|---|---|
1.23.7 | 8.10 | 2.0.10 | 8.5.2 | 1.8 | 21 |
Daftar versi yang direkomendasikan untuk versi deteksi sebelumnya tercantum di sini.
detekt sendiri menyediakan pembungkus ktlint sebagai kumpulan aturan formatting
yang dapat dengan mudah ditambahkan ke konfigurasi Gradle:
ketergantungan { detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:[version]") }
Demikian pula, ada kumpulan aturan tambahan yang tersedia untuk deteksi dari deteksi:
ketergantungan { detektPlugins("io.gitlab.arturbosch.detekt:detekt-rules-libraries:[version]") detektPlugins("io.gitlab.arturbosch.detekt:detekt-rules-ruleauthors:[versi]") }
Untuk info lebih lanjut kunjungi Detekt Marketplace.
Ekstensi khusus juga dapat ditambahkan ke deteksi.
Lihat KONTRIBUSI
Terima kasih kepada semua orang yang berkontribusi pada deteksi!
Seperti yang disebutkan dalam...
Untuk Mendeteksi 2.0, dan seterusnya!
droidcon London 2021 - Deteksi - Negara Persatuan
KotlinConf 2018 - Safe(r) Kotlin Code - Alat Analisis Statis untuk Kotlin oleh Marvin Ramin
droidcon NYC 2018 - Analisis Kode Statis Untuk Kotlin
Kotlin tentang Alat Kualitas Kode - oleh @vanniktech Slides Presentation
Mengintegrasikan deteksi dalam Alur Kerja
Periksa kualitas kode Kotlin
Alat Analisis Statis Kotlin
Apakah Anda masih menciumnya?: Studi perbandingan antara bahasa Java dan Kotlin oleh Flauzino dkk.
Mencegah antipola perangkat lunak dengan Detekt
Integrasi:
Integrasi IntelliJ
Integrasi SonarQube
Integrasi TCA (Tencent CodeAnalysis).
Kodasi
Plugin Gradle yang mengonfigurasi Rawan Kesalahan, Checkstyle, PMD, CPD, Lint, Detekt & Ktlint
Pelanggaran Lib adalah perpustakaan Java untuk mem-parsing file laporan seperti analisis kode statis.
sputnik adalah alat gratis untuk peninjauan kode statis dan menyediakan dukungan untuk deteksi
Plugin Detekt Maven yang membungkus Detekt CLI
Plugin Detekt Bazel yang membungkus Detekt CLI
Plugin Gradle yang membantu memfasilitasi pemeriksaan GitHub PR dan komentar otomatis terhadap pelanggaran
faktor kode
Tindakan GitHub: Deteksi Semua
Tindakan GitHub: Deteksi penyiapan
Aturan khusus dan laporan dari pihak ketiga dapat ditemukan di Detekt Marketplace kami.
JetBrains - Membuat IntelliJ + Kotlin
PMD & Checkstyle & ktlint - Ide untuk nilai ambang batas dan aturan gaya