PMD เป็นตัววิเคราะห์โค้ดคงที่หลายภาษาที่ขยายได้ โดยจะค้นหาข้อบกพร่องในการเขียนโปรแกรมทั่วไป เช่น ตัวแปรที่ไม่ได้ใช้ บล็อก catch ว่าง การสร้างอ็อบเจ็กต์ที่ไม่จำเป็น และอื่นๆ เกี่ยวข้องกับ Java และ Apex เป็นหลัก แต่ รองรับภาษาอื่นๆ อีก 16 ภาษา มันมาพร้อมกับ กฎในตัวมากกว่า 400 กฎ สามารถขยายได้ด้วยกฎที่กำหนดเอง ใช้ JavaCC และ Antlr เพื่อแยกวิเคราะห์ไฟล์ต้นฉบับเป็นแผนผังไวยากรณ์นามธรรม (AST) และเรียกใช้กฎกับไฟล์เหล่านี้เพื่อค้นหาการละเมิด สามารถเขียนกฎด้วยภาษา Java หรือใช้แบบสอบถาม XPath
ปัจจุบัน PMD รองรับ Java, JavaScript, Salesforce.com Apex และ Visualforce, Kotlin, Swift, Modelica, PLSQL, Apache Velocity, JSP, WSDL, Maven POM, HTML, XML และ XSL รองรับ Scala แต่ปัจจุบันไม่มีกฎ Scala ที่ใช้งานได้
นอกจากนี้ยังมี CPD ซึ่งเป็นเครื่องตรวจจับการคัดลอกวาง CPD ค้นหาโค้ดที่ซ้ำกันใน 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 และ Visualforce, Scala, Swift, T-SQL, Typescript, Apache Velocity, WSDL, XML และ XSL
ดาวน์โหลดไบนารี่ zip ล่าสุดจากรุ่นต่างๆ และแตกไฟล์ออกจากที่ใดที่หนึ่ง
ดำเนินการ bin/pmd check
หรือ binpmd.bat check
ดูเพิ่มเติมที่การเริ่มต้น
การสาธิต:
นี่แสดงให้เห็นว่า PMD วิเคราะห์ openjdk อย่างไร:
มีปลั๊กอินสำหรับ Maven และ Gradle รวมถึง IDE ต่างๆ ดูเครื่องมือ / บูรณาการ
ยินดีต้อนรับคำขอดึง สำหรับการเปลี่ยนแปลงที่สำคัญ โปรดเปิดประเด็นก่อนเพื่อหารือเกี่ยวกับสิ่งที่คุณต้องการเปลี่ยนแปลง
แหล่ง PMD ล่าสุดของเราสามารถพบได้บน GitHub แยกเรา!
ตัวออกแบบกฎได้รับการพัฒนาที่ pmd/pmd-designer โปรดดู README สำหรับเอกสารประกอบสำหรับนักพัฒนา
ร่วมเป็นผู้บริจาคทางการเงินและช่วยเรารักษาชุมชนของเรา มีส่วนช่วย
โครงการนี้เป็นไปตามข้อกำหนดของผู้มีส่วนร่วมทั้งหมด ยินดีต้อนรับการบริจาคใด ๆ !
ดูเครดิตสำหรับรายการทั้งหมด
สไตล์บีเอสดี