Raccomandazione sugli strumenti di analisi statica per Java?

Essendo vagamente familiare con il mondo di Java, stavo cercando su google uno strumento di analisi statico che fosse anche abbastanza intelligente da risolvere i problemi che trova. Ho eseguito lo strumento CodePro ma, ancora una volta, sono nuovo alla comunità Java e non conosco i venditori.

Quale strumento puoi raccomandare in base ai criteri sopra riportati?

FindBugs, PMD e Checkstyle sono tutte scelte eccellenti soprattutto se li si integra nel processo di compilazione.

Alla mia ultima società abbiamo anche utilizzato Fortify per verificare potenziali problemi di sicurezza. Siamo stati fortunati ad avere una licenza aziendale, quindi non conosco il costo.

  • Findbugs
  • PMD
  • Checkstyle
  • Lint4J
  • Classycle
  • JDepend
  • donnicciola
  • Google Codepro

Raccomando FindBugs. http://findbugs.sourceforge.net/ Buono nell’assistere a fare la revisione del codice.

IntelliJ IDEA di JetBrains. Fanno anche ReSharper nella comunità .Net.

Ecco la mia lista (45 articoli) di strumenti di analisi statica aperti / aperti: Strumenti di qualità del codice Java – Panoramica

Sonar è uno strumento per il controllo della qualità. Misura la qualità delle applicazioni Java attraverso l’osservanza delle convenzioni delle regole di codifica, misure metriche e indicatori avanzati.

Sonar si basa sui seguenti progetti:

  • JavaNCSS : metriche di qualità

  • Checkstyle : stile Cheking

  • PMD : scansione del codice per potenziali errori.

  • Cobertura : Test Coverage

Si potrebbe anche usare Simian per il rilevamento della duplicazione.

CRAP4J non è solo un nome fantastico, ma è piuttosto utile. Gli altri buoni sono tutti sopra, la cosa migliore di tutti (IMHO) è FindBugs, perché in realtà trova bug onestamente buoni in una grande base di codice.

Puoi provare JavaDepend , integrare altri strumenti di analisi statica e fornire un linguaggio CQL per interrogare un database simile al codice,

JavaDepend fornisce anche molte viste interattive per comprendere la base di codice esistente e oltre 82 metriche.

Tutto quanto sopra sono ottimi strumenti. PMD è probabilmente il più comune.

Un altro strumento è Enerjy . Di recente è diventato gratuito, quindi puoi scaricarlo e provare per te stesso. Enerjy è un po ‘più organizzato e si adatta meglio ai team più grandi. Semplifica la personalizzazione e la condivisione delle regole. Personalmente, non sono un grande fan, ma forse ti piacerà più di me.

Coppia di venditori commerciali che hanno un’offerta Java:

Klocwork Coverity

Non “aggiusteranno i problemi” che troveranno (né, credo, nessuno degli altri menzionati sopra) ma questi sono tutti strumenti che hanno diversi punti di forza.