PMD es un analizador de código estático multilenguaje extensible. Encuentra fallas de programación comunes, como variables no utilizadas, bloques catch vacíos, creación de objetos innecesarios, etc. Se ocupa principalmente de Java y Apex , pero admite otros 16 lenguajes . Viene con más de 400 reglas integradas . Se puede ampliar con reglas personalizadas. Utiliza JavaCC y Antlr para analizar archivos fuente en árboles de sintaxis abstracta (AST) y ejecuta reglas contra ellos para encontrar violaciones. Las reglas se pueden escribir en Java o mediante una consulta XPath.
Actualmente, PMD es compatible con Java, JavaScript, Salesforce.com Apex y Visualforce, Kotlin, Swift, Modelica, PLSQL, Apache Velocity, JSP, WSDL, Maven POM, HTML, XML y XSL. Se admite Scala, pero actualmente no hay reglas de Scala disponibles.
Además, incluye CPD , el detector de copiar y pegar. CPD encuentra código duplicado en 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 y Visualforce, Scala, Swift, T-SQL, Typecript, Apache Velocity, WSDL, XML y XSL.
Descargue el último zip binario de las versiones y extráigalo en algún lugar.
Ejecute bin/pmd check
o binpmd.bat check
.
Consulte también Primeros pasos
Manifestación:
Esto muestra cómo PMD analiza openjdk:
Hay complementos para Maven y Gradle, así como para varios IDE. Ver Herramientas / Integraciones
Las solicitudes de extracción son bienvenidas. Para cambios importantes, primero abra un problema para discutir lo que le gustaría cambiar.
Nuestra última fuente de PMD se puede encontrar en GitHub. ¡Bifurquenos!
El diseñador de reglas se desarrolla en pmd/pmd-designer. Consulte su archivo README para obtener documentación para desarrolladores.
Conviértase en un contribuyente financiero y ayúdenos a sostener nuestra comunidad. Contribuir
Este proyecto sigue la especificación de todos los contribuyentes. ¡Bienvenidos aportes de cualquier tipo!
Ver créditos para la lista completa.
Estilo BSD