Sonar führt standardmäßig CheckStyle, FindBugs und PMD sowie einige andere "Plugins" wie Cobertura (Codeabdeckung) für Java-Projekte aus. Der Hauptvorteil besteht jedoch darin, dass der Verlauf in einer Datenbank gespeichert wird. Sie können dann den Trend sehen . Verbessern Sie die Codebasis oder machen Sie das Gegenteil? Nur ein Werkzeug mit Speicher kann Ihnen das sagen.
Sie sollten Sonar in Ihrem CI-System ausführen, damit auch Dinge ausgeführt werden können, deren Ausführung einige Zeit in Anspruch nimmt (z. B. CPD - Copy Paste Detector). Und du wirst deine Geschichte haben. Während Sie beispielsweise mit einem Eclipse-Plugin Verstöße früher erkennen - was großartig ist -, werden Sie versucht sein, es weniger häufig auszuführen, wenn es zu lange dauert, oder weniger "Qualitäts-Plugins" auszuführen (z. B. CPD überspringen oder Analyse der Codeabdeckung überspringen). Und du wirst keine Geschichte haben.
Außerdem generiert Sonar visuelle Berichte im "Dashboard" -Stil. Das macht es sehr leicht zu erfassen. Mit Sonar in Jenkins können Sie Entwicklern und Ihrem Management die Auswirkungen der Arbeit zeigen, die in den letzten Wochen und Monaten auf die Qualität der Codebasis ausgeführt wurde.
Sonar verwendet diese drei Tools als Plugins und aggregiert die Daten aller drei Tools, um einen Mehrwert zu erzielen, indem Diagramme und dergleichen dieser Tools angezeigt werden. Sie ergänzen also das Sonar.
quelle
Ja und nein. Neben den anderen Antworten.
SonarQube ist derzeit auf dem Weg, PMD, Checkstyle und Findbugs zu verwerfen und Java-Code ( SonarJava ) mithilfe eigener Technologie zu analysieren . Sie tun dies, weil sie ihre Zeit nicht damit verbringen möchten, diese Bibliotheken (z. B. für Java 8) zu reparieren, zu aktualisieren (oder darauf zu warten), die beispielsweise veraltete Bibliotheken verwenden.
Sie haben auch einen neuen Satz von Plugins für Ihre persönliche IDE namens SonarLint .
quelle
Sonar ist großartig, aber wenn Sie die genannten Tools separat verwenden möchten und dennoch schöne Grafiken haben möchten, können Sie das Analysis Collector Plugin als Teil Ihres Jenkins CI-Builds verwenden. Ein kleiner Vorteil davon ist, dass Sie Ihre PMD / Findbugs / Checkstyle-Konfiguration in Ihr SCM einchecken und in Ihren Maven-Build integrieren können, anstatt sich auf einen separaten Sonar-Server zu verlassen.
quelle
Sonar ist viel mehr als nur diese Tools. Der größte Vorteil ist die GUI, mit der Sie alles einfach konfigurieren können. Die angebotenen Statistiken sind sehr detailliert (Codezeilen usw.). Und es bietet sogar großartige Unterstützung für die Testabdeckung usw. :)
Hier können Sie einen guten Blick darauf werfen: http://nemo.sonarsource.org/
quelle
Ich würde diese Tools zusätzlich zum Sonar weiterhin verwenden, da sie beim Erstellen eines Maven fehlschlagen können, wenn jemand gegen eine Regel verstößt. Wo als Sonar eher retrospektiv ist.
quelle
... ein paar Jahre später: nein, das ist es nicht! SonarQube setzt voraus, dass alle Regeln mit einem eigenen Analysegerät abgedeckt werden können. Es gibt jedoch weiterhin Regeln von PMD oder CheckStyle, die nicht von SonarQube abgedeckt werden. Siehe zum Beispiel: PMD ReturnFromFinallyBlock.
quelle
Nun, zumindest seit SonarQube 6.3+ scheint es, dass Findbugs (im Moment) nicht mehr als Plugin unterstützt wird. Sonarsource arbeitet daran, Findbugs-Regeln durch ein eigenes Java-Plugin zu ersetzen.
Sie haben sogar eine Liste für den Ersetzungsstatus jeder Regel hier: http://dist.sonarsource.com/reports/coverage/findbugs.html
quelle