2008-09-18 14 views
52

Siendo vagamente familiar con el mundo Java, estaba buscando una herramienta de análisis estático que también fuera lo suficientemente inteligente como para solucionar los problemas que encuentra. Ejecuté la herramienta CodePro pero, nuevamente, soy nuevo en la comunidad Java y no conozco a los proveedores.Recomendación de herramienta de análisis estático para Java?

¿Qué herramienta puede recomendar según los criterios anteriores?

+0

También puede consultar [qulice.com] (http://www.qulice.com), que integra junto Checkstyle, PMD, FindBugs, y las preconfigura – yegor256

+0

http: //softwarerecs.stackexchange. com será tu amigo – peterh

Respuesta

38

FindBugs, PMD y Checkstyle son todas excelentes opciones, especialmente si las integra en su proceso de construcción.

En mi última compañía también usamos Fortify para verificar posibles problemas de seguridad. Fuimos afortunados de tener una licencia empresarial, así que no sé el costo involucrado.

11

IntelliJ IDEA de JetBrains. También hacen ReSharper en la comunidad .Net.

47
+0

¿Podría comentar un poco sobre el uso de lint4j? Lo probé, pero produjo solo una advertencia (¡un falso positivo!) En toda mi base de códigos. ¡Sé que mi código no es tan limpio! Mi código requiere Java 6 y el proyecto lint4j. parece estar inactivo lint4j no es FOSS, entonces no hay código fuente. ¡Gracias! –

+0

Recibí varios cientos de advertencias de lint4j durante mi escaneo del proyecto 200 KLOC. La mayoría de ellos eran "agradables de tener", como "usar un literal de caracteres en lugar de literal de cadena para agregar un solo carácter constante a una secuencia". Findbugs definitivamente te da las cosas más importantes a considerar. (¡Pero en el nuevo código siempre los uso!) – Bananeweizen

6

Sonar es una herramienta de control de calidad. Mide la calidad de las aplicaciones de Java a través del cumplimiento de las convenciones de reglas de codificación, medidas métricas e indicadores avanzados.

sonar se basa en los siguientes proyectos:

También es posible usar Simian para la detección de la duplicación.

+0

No me gusta el Sonar: comenzaron a ser muy caros. – pan40

1

Todo lo anterior son excelentes herramientas. PMD es probablemente el más común.

Otra herramienta es Enerjy. Recientemente se convirtió en gratuito, por lo que puede descargarlo y probarlo usted mismo. Enerjy está algo más organizado y se adapta mejor a equipos más grandes. Hace que sea más fácil personalizar y compartir las reglas. Personalmente, no soy un gran admirador, pero tal vez te guste más que yo.

1

CRAP4J no es solo un nombre impresionante, pero es bastante útil.Los otros buenos están todos arriba, lo mejor de todo (en mi humilde opinión) es FindBugs, porque realmente encuentra errores honestos en una gran base de código.

0

par de vendedores comerciales que tienen una oferta de Java:

Klocwork Coverity

No van a "solucionar los problemas que encuentran" (ni, a mi juicio, cualquiera de los otros mencionados anteriormente) pero estas son todas las herramientas que tienen diferentes puntos fuertes.

1

Usted puede intentar JavaDepend, que complementan otras herramientas de análisis estático, y proporciona un lenguaje CQL para consultar el código como base de datos,

JavaDepend proporciona también muchas vistas interactivas para comprender la base de código existente y más de 82 métricas.

Cuestiones relacionadas