Sonar będzie domyślnie uruchamiał CheckStyle, FindBugs i PMD, a także kilka innych „wtyczek”, takich jak Cobertura (pokrycie kodu) dla projektów Java. Główną wartością dodaną jest jednak to, że przechowuje historię w bazie danych. Możesz wtedy zobaczyć trend . Czy poprawa bazy kodu lub robisz coś przeciwnego? Tylko narzędzie z pamięcią może ci to powiedzieć.
Powinieneś uruchomić Sonar w swoim systemie CI, aby mogły działać nawet rzeczy, których wykonanie zajmuje trochę czasu (takie jak CPD - wykrywacz pasty kopiującej). I będziesz miał swoją historię. Podczas gdy na przykład za pomocą wtyczki Eclipse wykryjesz naruszenia wcześniej - co jest świetne - ale będziesz skłonny uruchamiać ją rzadziej, jeśli zacznie to trwać zbyt długo, lub będziesz uruchamiać mniej „jakościowych wtyczek” (takich jak pomijanie CPD lub pomijanie analizy pokrycia kodu). I nie będziesz miał historii.
Ponadto Sonar generuje wizualne raporty w stylu „Dashboard”. Co czyni go bardzo łatwym do uchwycenia. Dzięki Sonar in Jenkins będziesz mógł pokazać programistom i swojemu kierownictwu efekty pracy wykonanej nad jakością kodu w ciągu ostatnich kilku tygodni i miesięcy.
Sonar wykorzystuje te 3 narzędzia jako wtyczki i agreguje dane ze wszystkich trzech, dając wartość dodaną, pokazując wykresy itp. Z tych narzędzi. Są więc uzupełnieniem sonaru.
źródło
Tak i nie. Oprócz innych odpowiedzi.
SonarQube jest obecnie na dobrej drodze do wycofania PMD, Checkstyle i Findbugs i wykorzystania własnej technologii do analizy kodu Java (zwanej SonarJava ). Robią to, ponieważ nie chcą tracić czasu na naprawianie, aktualizowanie (lub czekanie na to) tych bibliotek (np. Java 8), które na przykład korzystają z przestarzałych bibliotek.
Otrzymali także nowy zestaw wtyczek do Twojego osobistego IDE o nazwie SonarLint .
źródło
Sonar jest świetny, ale jeśli chcesz używać wspomnianych narzędzi osobno i nadal mieć ładne wykresy, możesz użyć wtyczki Analysis Collector jako części swojej kompilacji Jenkins CI. Niewielką zaletą tego jest to, że możesz sprawdzić konfigurację PMD / Findbugs / Checkstyle w swoim SCM i zintegrować ją z kompilacją Maven, zamiast polegać na oddzielnym serwerze Sonar.
źródło
Sonar to znacznie więcej niż same te narzędzia. Największą zaletą jest GUI, który pozwala łatwo skonfigurować wszystko. Statystyki, które oferuje, są bardzo szczegółowe (linie kodu itp.). Oferuje nawet świetne wsparcie dla pokrycia testów itp. :)
Tutaj możesz się dobrze przyjrzeć: http://nemo.sonarsource.org/
źródło
Nadal używałbym tych narzędzi oprócz sonaru, ponieważ mogą one zawieść kompilację mavena, gdy ktoś naruszy zasadę. Gdzie jako sonar jest bardziej retrospektywny.
źródło
... kilka lat później: nie, nie jest! SonarQube zakłada, że będzie w stanie pokryć wszystkie reguły za pomocą własnego analizatora, ale nadal istnieją reguły z PMD lub CheckStyle, których nie obejmuje SonarQube. Zobacz na przykład: PMD ReturnFromFinallyBlock.
źródło
Cóż, przynajmniej od SonarQube 6.3+ wydaje się, że Findbugs nie jest (w tej chwili) już obsługiwany jako wtyczka. Sonarsource pracuje nad zastąpieniem reguł Findbugs własną wtyczką Java.
Mają nawet listę statusu zastąpienia każdej reguły tutaj: http://dist.sonarsource.com/reports/coverage/findbugs.html
źródło