PMD adalah penganalisis kode statis multibahasa yang dapat diperluas. Ia menemukan kelemahan pemrograman umum seperti variabel yang tidak digunakan, blok tangkapan kosong, pembuatan objek yang tidak perlu, dan sebagainya. Ini terutama berkaitan dengan Java dan Apex , tetapi mendukung 16 bahasa lainnya . Muncul dengan 400+ aturan bawaan . Dapat diperpanjang dengan aturan adat. Ia menggunakan JavaCC dan Antlr untuk mengurai file sumber menjadi pohon sintaksis abstrak (AST) dan menjalankan aturan terhadap file tersebut untuk menemukan pelanggaran. Aturan dapat ditulis dalam Java atau menggunakan kueri XPath.
Saat ini, PMD mendukung Java, JavaScript, Salesforce.com Apex dan Visualforce, Kotlin, Swift, Modelica, PLSQL, Apache Velocity, JSP, WSDL, Maven POM, HTML, XML dan XSL. Scala didukung, namun saat ini tidak ada aturan Scala yang tersedia.
Selain itu, ini mencakup CPD , pendeteksi salin-tempel. CPD menemukan kode duplikat di Coco, C/C++, C#, Dart, Fortran, Gherkin, Go, Groovy, HTML, Java, JavaScript, JSP, Julia, Kotlin, Lua, Matlab, Modelica, Objective-C, Perl, PHP, PLSQL , Python, Ruby, Salesforce.com Apex dan Visualforce, Scala, Swift, T-SQL, TypeScript, Apache Velocity, WSDL, XML dan XSL.
Unduh zip biner terbaru dari rilis dan ekstrak di suatu tempat.
Jalankan bin/pmd check
atau binpmd.bat check
.
Lihat juga Memulai
Demo:
Ini menunjukkan bagaimana PMD menganalisis openjdk:
Ada plugin untuk Maven dan Gradle serta untuk berbagai IDE. Lihat Alat / Integrasi
Permintaan tarik dipersilakan. Untuk perubahan besar, silakan buka terbitan terlebih dahulu untuk mendiskusikan apa yang ingin Anda ubah.
Sumber PMD terbaru kami dapat ditemukan di GitHub. Garpu kami!
Perancang aturan dikembangkan di pmd/pmd-designer. Silakan lihat README-nya untuk dokumentasi pengembang.
Menjadi kontributor keuangan dan membantu kami mempertahankan komunitas kami. Menyumbang
Proyek ini mengikuti spesifikasi semua kontributor. Kontribusi apa pun diterima!
Lihat kredit untuk daftar lengkapnya.
Gaya BSD