Analisis kode statis membungkus checkstyle, spotbugs, PMD dan CPD, menawarkan fitur dan ekstensi baru ke plugin yang dienkapsulasi, membuatnya lebih mudah untuk menggunakannya dan memberikan hasil yang lebih baik dengan upaya minimum.
Di luar kotak, dengan hanya menerapkan plugin yang Anda dapatkan:
R.class dan BuildConfig.class )Kami berada di portal plugin grade, jadi Anda bisa melakukannya:
plugins {
id ' com.monits.staticCodeAnalysis ' version ' 3.1.1 '
}Atau, Anda juga bisa melakukannya
buildscript {
repositories {
maven {
url ' https://plugins.gradle.org/m2/ '
}
}
dependencies {
classpath ' com.monits:static-code-analysis-plugin:3.1.1 '
}
}
apply plugin : ' com.monits.staticCodeAnalysis 'Atau, langsung dari jCenter
buildscript {
repositories {
jcenter()
}
dependencies {
classpath ' com.monits:static-code-analysis-plugin:3.1.1 '
}
}
apply plugin : ' com.monits.staticCodeAnalysis ' | Versi plugin | Versi lulusan | Versi plugin Android Gradle |
|---|---|---|
| 3.x | 5.6+ | 3.3.0+ |
| 2.6.12 | 2.3 hingga 5.6.x | 1.1.x hingga 3.5.x |
Sebelum Versi 3.0.0 FindBugs digunakan sebagai pengganti spotbugs.
Mengkonfigurasi analisis kode statis sangat sederhana dan intuitif berkat DSL -nya. Anda dapat memilih plugin yang dienkapsulasi untuk menjalankan dan mengatur file konfigurasinya. Ini contoh singkat
staticCodeAnalysis {
spotbugs = true
checkstyle = true
pmd = true
cpd = true
androidLint = true
ignoreErrors = true
// default rules
spotbugsExclude = " $p roject . rootProject . projectDir /config/spotbugs/excludeFilter.xml "
checkstyleRules = ' https://raw.githubusercontent.com/Monits/static-code-analysis-plugin/staging/defaults/checkstyle/checkstyle-cache.xml '
pmdRules = [ ' https://raw.githubusercontent.com/Monits/static-code-analysis-plugin/staging/defaults/pmd/pmd.xml ' ,
' https://raw.githubusercontent.com/Monits/static-code-analysis-plugin/staging/defaults/pmd/pmd-android.xml ' ]
androidLintConfig = ' https://raw.githubusercontent.com/Monits/static-code-analysis-plugin/staging/defaults/android/android-lint.xml '
sourceSetConfig {
test { // or the name of any other sourceset
// use a more relaxed ruleset
checkstyleRules = ' config/checkstyle/test-checkstyle.xml '
spotbugsExclude = ' config/spotbugs/test-spotbugs.xml '
pmdRules = [ ' config/pmd/test-pmd.xml ' ,
' https://raw.githubusercontent.com/Monits/static-code-analysis-plugin/staging/defaults/pmd/pmd-android.xml ' ]
}
}
}Secara default, semua plugin diterapkan, kesalahan tidak akan gagal dalam build, dan aturan dan pengecualian akan diambil dari default terbaru repositori ini
Sebelum Versi 3.0.0 FindBugs digunakan sebagai pengganti spotbugs. Jika menggunakan versi lama, DSL setara, tetapi menggunakan findbugs alih -alih spotbugs untuk semua properti.
Semua v2.x findbugs properti DSL secara otomatis dipetakan ke spotbugs di v3.x untuk meningkatkan lebih mudah
Aturan yang digunakan oleh PMD, Spotbugs dan CheckStyle dapat ditimpa per-sumber per sumber di bawah blok sourceSetConfig .
Untuk memasukkan aturan serat khusus, Anda dapat memasukkan stoples sebagai dependensi di bawah androidLint . Misalnya, Anda bisa menyertakan linter android monit dengan menambahkan:
dependencies {
androidLint ' com.monits:android-linters:1.+ '
}Plugin akan menambahkan tugas -tugas berikut:
cpdcheckstyle , tergantung pada:checkstyleSourcesetname per sumber-set ( checkstyleMain , checkstyleTest , sebagainya).spotbugs , tergantung pada:spotbugsSourcesetname per Sumber-Set ( spotbugsMain , spotbugsTest , sebagainya).pmd , tergantung pada:pmdSourcesetname per sumber-set ( pmdMain , pmdTest , sebagainya). Sebelum Versi 3.0.0 FindBugs digunakan sebagai pengganti spotbugs. Tugas findbugs* lama masih tersedia dan memetakan ke Tugas spotbugs* yang sesuai
Semua tugas, terhubung untuk dijalankan sebagai bagian dari tugas check plugin Java.
Seperti biasa, jangan ragu untuk berkontribusi dalam bentuk atau bentuk apa pun, kami menantikan umpan balik Anda!.
Jika Anda melihat hal -hal dilaporkan yang menurut Anda tidak boleh menjadi salah satu dari dua hal:
Karena setiap alat memiliki mekanisme penindasannya sendiri, Anda harus merujuk pada dokumentasinya:
@SupressFBWarnings JavadocHak Cipta 2010-2017 Monits SA
Berlisensi di bawah lisensi Apache, versi 2.0 ("lisensi"); Anda tidak boleh menggunakan pekerjaan ini kecuali sesuai dengan lisensi. Anda dapat memperoleh salinan lisensi di:
http://www.apache.org/licenses/license-2.0