PMD هو محلل كود ثابت متعدد اللغات وقابل للتوسيع. فهو يعثر على عيوب البرمجة الشائعة مثل المتغيرات غير المستخدمة، وكتل الالتقاط الفارغة، وإنشاء الكائنات غير الضرورية، وما إلى ذلك. إنه مخصص بشكل أساسي لـ 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.
قم بتنزيل أحدث ملف ثنائي مضغوط من الإصدارات واستخرجه في مكان ما.
قم بتنفيذ bin/pmd check
أو binpmd.bat check
.
انظر أيضًا البدء
العرض التوضيحي:
يوضح هذا كيف يقوم PMD بتحليل openjdk:
هناك مكونات إضافية لـ Maven وGradle بالإضافة إلى العديد من بيئات التطوير المتكاملة (IDEs). راجع الأدوات / عمليات التكامل
طلبات السحب هي موضع ترحيب. لإجراء تغييرات كبيرة، يرجى فتح مشكلة أولاً لمناقشة ما تريد تغييره.
يمكن العثور على أحدث مصدر لدينا لـ PMD على GitHub. شوكة لنا!
تم تطوير مصمم القاعدة فيpmd/pmd-designer. يرجى الاطلاع على الملف التمهيدي الخاص به للحصول على وثائق المطور.
كن مساهمًا ماليًا وساعدنا في الحفاظ على مجتمعنا. يساهم
يتبع هذا المشروع مواصفات جميع المساهمين. المساهمات من أي نوع موضع ترحيب!
انظر الاعتمادات للحصول على القائمة الكاملة.
نمط بي إس دي