Sonar ejecutará CheckStyle, FindBugs y PMD, así como algunos otros "complementos" como Cobertura (cobertura de código) por defecto para proyectos Java. El principal valor agregado, sin embargo, es que almacena el historial en una base de datos. A continuación, puede ver la tendencia . ¿Está mejorando la base del código o está haciendo lo contrario? Solo una herramienta con memoria puede decirte eso.
Debe ejecutar Sonar en su sistema CI para que se puedan ejecutar incluso las cosas que tardan algún tiempo en ejecutarse (como CPD - detector de copiar y pegar). Y tendrás tu historia. Mientras que con un complemento de Eclipse, por ejemplo, detectará las infracciones antes, lo cual es genial , pero tendrá la tentación de ejecutarlo con menos frecuencia si comienza a demorar demasiado o ejecuta menos "complementos de calidad" (como omitir CPD o omitiendo el análisis de cobertura de código). Y no tendrás historia.
Además, Sonar genera informes visuales , estilo "Panel de control". Lo que lo hace muy fácil de entender. Con Sonar en Jenkins, podrá mostrar a los desarrolladores y a su administración los efectos del trabajo que se realizó en la calidad del código base durante las últimas semanas y meses.
Sonar utiliza estas 3 herramientas como complementos y agrega los datos de las tres dando valor adicional al mostrar gráficos y demás de estas herramientas. Por eso son complementarios al sonar.
fuente
Si y no. Además de las otras respuestas.
SonarQube está actualmente en camino de desaprobar PMD, Checkstyle y Findbugs y usar su propia tecnología para analizar el código Java (llamado SonarJava ). Lo hacen porque no quieren perder su tiempo arreglando, actualizando (o esperando) esas bibliotecas (por ejemplo, para Java 8), que por ejemplo usa bibliotecas desactualizadas.
También obtuvieron un nuevo conjunto de complementos para su IDE personal llamado SonarLint .
fuente
Sonar es excelente, pero si desea usar las herramientas mencionadas por separado y aún así tener buenos gráficos, puede usar el Complemento de recopilador de análisis como parte de su compilación de Jenkins CI. Una pequeña ventaja de esto es que puede verificar su configuración de PMD / Findbugs / Checkstyle en su SCM e integrarla en su compilación de Maven, en lugar de depender de un servidor Sonar separado.
fuente
Sonar es mucho más que estas herramientas por sí solas. Los mayores beneficios es la interfaz gráfica de usuario, que le permite configurar cualquier cosa fácilmente. Las estadísticas que ofrece son muy detalladas (líneas de código, etc.). E incluso ofrece un gran soporte para la cobertura de prueba, etc. :)
Aquí puede echar un buen vistazo: http://nemo.sonarsource.org/
fuente
Todavía usaría estas herramientas además del sonar porque pueden fallar la compilación del experto cuando alguien viola una regla. Donde como sonar es más retrospectivo.
fuente
... unos años después: ¡no, no lo es! SonarQube supone poder cubrir todas las reglas con su propio analizador, pero aún existen reglas de PMD o CheckStyle no cubiertas por SonarQube. Consulte, por ejemplo: PMD ReturnFromFinallyBlock.
fuente
Bueno, al menos desde SonarQube 6.3+ parece ser que Findbugs (por el momento) ya no es compatible como complemento. Sonarsource está trabajando en reemplazos de las reglas de Findbugs con su propio complemento Java.
Incluso tienen una lista del estado de reemplazo de cada regla aquí: http://dist.sonarsource.com/reports/coverage/findbugs.html
fuente