
Um analisador de código estático multilíngue extensível.

PMD é um analisador estático de código multilíngue extensível. Ele encontra falhas comuns de programação como variáveis não utilizadas, blocos catch vazios, criação desnecessária de objetos e assim por diante. Ele se preocupa principalmente com Java e Apex, mas suporta 16 outras linguagens. Ele vem com mais de 400 regras incorporadas. Pode ser estendido com regras personalizadas. Usa JavaCC e Antlr para analisar arquivos fonte em árvores sintáticas abstratas (AST) e executa regras contra elas para encontrar violações. As regras podem ser escritas em Java ou usando uma consulta XPath.
Atualmente, o PMD suporta Java, JavaScript, Salesforce.com Apex e Visualforce, Kotlin, Swift, Modelica, PL/SQL, Apache Velocity, JSP, WSDL, Maven POM, HTML, XML e XSL. Scala é suportado, mas atualmente não há regras Scala disponíveis.
Além disso, inclui CPD, o detector de cópia e colagem. O CPD encontra código duplicado em Coco, C/C++, C#, CSS, Dart, Fortran, Gherkin, Go, Groovy, HTML, Java, JavaScript, JSP, Julia, Kotlin, Lua, Matlab, Modelica, Objective-C, Perl, PHP, PL/SQL, Python, Ruby, Salesforce.com Apex e Visualforce, Scala, Swift, T-SQL, Typescript, Apache Velocity, WSDL, XML e XSL.
Baixe o último zip binário dos releases e extraia em algum lugar.
Execute bin/pmd check ou bin\pmd.bat check.
Veja também Getting Started
Demonstração:
Isso mostra como o PMD analisa openjdk:

Existem plugins para Maven e Gradle, bem como para várias IDEs. Veja Tools / Integrations
Pull requests são bem-vindos. Para mudanças significativas, abra um issue primeiro para discutir o que você gostaria de alterar.
Nossa fonte mais recente do PMD pode ser encontrada no GitHub. Faça um fork!
Para detalhes, veja How to contribute to PMD.
O designer de regras é desenvolvido em pmd/pmd-designer. Por favor, veja seu README para documentação do desenvolvedor.
Torne-se um contribuidor financeiro e ajude a sustentar nossa comunidade. Contribua
Este projeto segue a especificação all-contributors. Contribuições de qualquer tipo são bem-vindas!
Veja créditos para a lista completa.