PMD é um analisador de código estático 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 oferece suporte a outras 16 linguagens . Ele vem com mais de 400 regras integradas . Pode ser estendido com regras personalizadas. Ele usa JavaCC e Antlr para analisar arquivos de origem em árvores de sintaxe abstrata (AST) e executa regras contra eles para encontrar violações. As regras podem ser escritas em Java ou usando uma consulta XPath.
Atualmente, PMD oferece suporte a Java, JavaScript, Salesforce.com Apex e Visualforce, Kotlin, Swift, Modelica, PLSQL, Apache Velocity, JSP, WSDL, Maven POM, HTML, XML e XSL. Scala é compatível, mas atualmente não há regras de Scala disponíveis.
Além disso, inclui CPD , o detector de copiar e colar. CPD encontra código duplicado em 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 e Visualforce, Scala, Swift, T-SQL, Typescript, Apache Velocity, WSDL, XML e XSL.
Baixe o zip binário mais recente dos lançamentos e extraia-o em algum lugar.
Execute bin/pmd check
ou binpmd.bat check
.
Consulte também Primeiros passos
Demonstração:
Isso mostra como o PMD analisa o openjdk:
Existem plugins para Maven e Gradle, bem como para vários IDEs. Veja Ferramentas/Integrações
Solicitações pull são bem-vindas. Para mudanças importantes, abra primeiro uma edição para discutir o que você gostaria de mudar.
Nossa fonte mais recente de PMD pode ser encontrada no GitHub. Bifurque-nos!
O designer de regras é desenvolvido em pmd/pmd-designer. Por favor, consulte seu README para documentação do desenvolvedor.
Torne-se um contribuidor financeiro e ajude-nos a sustentar nossa comunidade. Contribuir
Este projeto segue a especificação de todos os contribuidores. Contribuições de qualquer tipo são bem-vindas!
Veja os créditos para a lista completa.
Estilo BSD