
pmd pmd_releases/7.27.0
Un analizzatore statico di codice multilingua estensibile.
PMD - analizzatore di codice sorgente

PMD è un analizzatore statico di codice multilinguaggio estensibile. Trova difetti di programmazione comuni come variabili inutilizzate, blocchi catch vuoti, creazione di oggetti non necessari e così via. Si occupa principalmente di Java e Apex, ma supporta 16 altri linguaggi. Viene fornito con oltre 400 regole integrate. Può essere esteso con regole personalizzate. Utilizza JavaCC e Antlr per analizzare i file sorgente in alberi sintattici astratti (AST) e applica regole su di essi per trovare violazioni. Le regole possono essere scritte in Java o utilizzando una query XPath.
Attualmente, PMD supporta Java, JavaScript, Salesforce.com Apex e Visualforce, Kotlin, Swift, Modelica, PL/SQL, Apache Velocity, JSP, WSDL, Maven POM, HTML, XML e XSL. Scala è supportato, ma al momento non sono disponibili regole Scala.
Inoltre, include CPD, il rilevatore di copia-incolla. CPD trova codice duplicato in 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.
🚀️ Installazione e Utilizzo
Scarica l'ultimo zip binario dalle release ed estrailo in una cartella.
Esegui bin/pmd check o bin\pmd.bat check.
Vedi anche Guida introduttiva
Demo:
Questo mostra come PMD analizza openjdk:

Ci sono plugin per Maven e Gradle e per vari IDE. Vedi Strumenti / Integrazioni
ℹ️ Come ottenere supporto?
- Come si fa? -- Fai una domanda su StackOverflow o su discussions.
- Ho ricevuto questo errore, perché? -- Fai una domanda su StackOverflow o su discussions.
- Ho ricevuto questo errore e sono sicuro che sia un bug -- apri un issue.
- Ho un'idea/richiesta/domanda -- crea una nuova discussion.
- Ho una domanda veloce -- chiedi nella nostra stanza Gitter o al nostro PMD Guru su Gurubase.
- Dov'è la documentazione? -- https://docs.pmd-code.org/latest/
🤝️ Contribuire
Le pull request sono benvenute. Per modifiche importanti, apri prima un issue per discutere cosa vorresti cambiare.
Il nostro ultimo codice sorgente di PMD si trova su GitHub. Fork us!
Per i dettagli, vedi Come contribuire a PMD.
Il progettista di regole è sviluppato su pmd/pmd-designer. Vedi il suo README per la documentazione per sviluppatori.
💵️ Contributori finanziari
Diventa un contributore finanziario e aiutaci a sostenere la nostra community. Contribuisci
✨️ Contributori
Questo progetto segue la specifica all-contributors. Contributi di ogni tipo sono benvenuti!
Vedi crediti per l'elenco completo.