Articulo de referencia

PMD (software)

"}},"i":0}}]}"> PMD es un analizador de código fuente estático de código abierto que informa sobre los problemas encontrados en el código de la aplicación. PMD incluye conjuntos...

PMD es un analizador de código fuente estático de código abierto que informa sobre los problemas encontrados en el código de la aplicación. PMD incluye conjuntos de reglas integrados y permite escribir reglas personalizadas. PMD no informa sobre errores de compilación, ya que solo puede procesar archivos fuente bien formados. En cambio, PMD está diseñado para detectar código ineficiente o malos hábitos de programación, que pueden reducir el rendimiento y la mantenibilidad del programa si se acumulan. Puede analizar archivos escritos en Java , JavaScript , Apex y Visualforce, PL/SQL , Apache Velocity , XML y XSL. [ 3 ]

Aunque PMD no significa oficialmente nada, [ 4 ] se han sugerido varios acrónimos retro, como por ejemplo Programming Mistake Detector y Project Meets Deadline . [ 5 ]

Características

PMD es capaz de detectar fallos o posibles fallos en el código fuente, como por ejemplo:

  • Errores : bloques try/catch/finally/switch vacíos.
  • Código muerto : variables locales , parámetros y métodos privados sin usar .
  • Sentencias if/while vacías.
  • Expresiones demasiado complicadas : sentencias if innecesarias, bucles for que podrían ser bucles while.
  • Código subóptimo : uso ineficiente de String/StringBuffer.
  • Clases con mediciones de alta complejidad ciclomática .
  • Código duplicado : copiar y pegar código puede significar copiar y pegar errores, y disminuye la facilidad de mantenimiento.

Licencia

PMD se publica bajo una licencia tipo BSD, mientras que algunas partes están bajo la Licencia Apache 2.0 y la LGPL . [ 2 ]

Detector de copiar/pegar (CPD)

El Detector de Copia y Pegado ( CPD ) es un complemento de PMD que utiliza el algoritmo de búsqueda de cadenas Rabin-Karp para encontrar código duplicado . A diferencia de PMD, CPD funciona con una gama más amplia de lenguajes, incluyendo Java, JavaServer Pages (JSP), C , C++ , Fortran , PHP y C# . [ 6 ]

Plugins

PMD tiene complementos para JDeveloper , Eclipse , jEdit , JBuilder , CodeGuide de Omnicore, NetBeans / Sun Studio , IntelliJ IDEA , TextPad , Maven , Ant , Gradle , Gel, JCreator, Hudson , Jenkins , SonarQube , Visual Studio Code y Emacs . [ 7 ] También hay una versión CLI .

Véase también

Referencias

  1. "Versión PMD 7.19.0 (28 de noviembre de 2025)" . Consultado el 30 de diciembre de 2025 .
  2. 1 2 "Licencia" . GitHub . 18 de enero de 2015. Consultado el 13 de agosto de 2015 .
  3. "Lenguajes compatibles con PMD | Analizador de código fuente de PMD" . docs.pmd-code.org . Consultado el 30 de diciembre de 2025 .
  4. "¿Qué significa 'PMD'?" . pmd-code.org . Consultado el 31 de marzo de 2023 .
  5. "Elimina los molestos errores, parte 4: el fin está cerca" . freesoftwaremagazine.com .
  6. "Lenguajes compatibles con CPD | Analizador de código fuente PMD" . docs.pmd-code.org . Consultado el 30/12/2025 .
  7. "Herramientas / Integraciones" . pmd-code.org . Consultado el 31 de marzo de 2023 .

Lecturas adicionales

  • Rutar, Almazan, Foster (2004), "Una comparación de herramientas para la detección de errores en Java" . Actas del 15.º Simposio Internacional sobre Ingeniería de Confiabilidad de Software (ISSRE '04) , IEEE, doi:10.1109/ISSRE.2004.1
  • Sitio web oficialEdita esto en Wikidata
  • PMD en GitHub
  • PMD en SourceForge
  • Formación continua en SourceForge.net .
  • Libro: "PMD Aplicado" Escrito por el desarrollador principal, Tom Copeland ().
  • PMD y CPD en Maven