PMD est un analyseur de code statique multilingue extensible. Il détecte les défauts de programmation courants tels que les variables inutilisées, les blocs catch vides, la création d'objets inutiles, etc. Il concerne principalement Java et Apex , mais prend en charge 16 autres langages . Il est livré avec plus de 400 règles intégrées . Il peut être étendu avec des règles personnalisées. Il utilise JavaCC et Antlr pour analyser les fichiers sources dans des arbres de syntaxe abstraite (AST) et exécute des règles pour détecter les violations. Les règles peuvent être écrites en Java ou à l'aide d'une requête XPath.
Actuellement, PMD prend en charge Java, JavaScript, Salesforce.com Apex et Visualforce, Kotlin, Swift, Modelica, PLSQL, Apache Velocity, JSP, WSDL, Maven POM, HTML, XML et XSL. Scala est pris en charge, mais aucune règle Scala n'est actuellement disponible.
De plus, il inclut CPD , le détecteur de copier-coller. CPD trouve le code dupliqué dans 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 et Visualforce, Scala, Swift, T-SQL, Typescript, Apache Velocity, WSDL, XML et XSL.
Téléchargez le dernier zip binaire des versions et extrayez-le quelque part.
Exécutez bin/pmd check
ou binpmd.bat check
.
Voir aussi Mise en route
Démo :
Ceci montre comment PMD analyse openjdk :
Il existe des plugins pour Maven et Gradle ainsi que pour divers IDE. Voir Outils / Intégrations
Les demandes de tirage sont les bienvenues. Pour les changements majeurs, veuillez d'abord ouvrir un ticket pour discuter de ce que vous souhaitez changer.
Notre dernière source de PMD peut être trouvée sur GitHub. Fourchette-nous !
Le concepteur de règles est développé chez pmd/pmd-designer. Veuillez consulter son README pour la documentation du développeur.
Devenez un contributeur financier et aidez-nous à pérenniser notre communauté. Contribuer
Ce projet suit la spécification de tous les contributeurs. Les contributions de toute nature sont les bienvenues !
Voir les crédits pour la liste complète.
StyleBSD