Sonar akan menjalankan CheckStyle, FindBugs dan PMD, serta beberapa "plugin" lainnya seperti Cobertura (cakupan kode) secara default untuk proyek Java. Nilai tambah utama, bagaimanapun, adalah menyimpan sejarah dalam database. Anda kemudian bisa melihat trennya . Apakah Anda meningkatkan basis kode atau sebaliknya? Hanya alat dengan memori yang dapat memberi tahu Anda hal itu.
Anda harus menjalankan Sonar di sistem CI Anda sehingga hal-hal yang memerlukan waktu untuk dieksekusi (seperti CPD - detektor salin tempel) dapat berjalan. Dan Anda akan memiliki sejarah Anda. Sedangkan dengan plugin Eclipse, misalnya, Anda akan mendeteksi pelanggaran lebih cepat - yang bagus - tetapi Anda akan tergoda untuk lebih jarang menjalankannya jika mulai terlalu lama, atau menjalankan lebih sedikit "plugin berkualitas" (seperti melewatkan CPD atau melewatkan analisis cakupan kode). Dan Anda tidak akan memiliki sejarah.
Selain itu, Sonar menghasilkan laporan visual , gaya "Dasbor". Yang membuatnya sangat mudah dipahami. Dengan Sonar di Jenkins, Anda akan dapat menunjukkan kepada pengembang dan manajemen Anda efek pekerjaan yang dilakukan pada kualitas basis kode selama beberapa minggu dan bulan terakhir.
Sonar menggunakan 3 alat ini sebagai plugin dan mengumpulkan data dari ketiganya memberikan nilai tambah dengan menampilkan grafik dan semacamnya dari alat tersebut. Jadi mereka melengkapi sonar.
sumber
Iya dan tidak. Selain jawaban lainnya.
SonarQube saat ini sedang dalam proses untuk menghentikan PMD, Checkstyle dan Findbugs dan menggunakan teknologinya sendiri untuk menganalisis kode Java (disebut SonarJava ). Mereka melakukannya, karena mereka tidak ingin menghabiskan waktu untuk memperbaiki, mengupgrade (atau menunggunya) library tersebut (misalnya untuk Java 8), yang misalnya menggunakan library yang sudah usang.
Mereka juga mendapat satu set plugin baru untuk IDE pribadi Anda yang disebut SonarLint .
sumber
Sonar sangat bagus, tetapi jika Anda ingin menggunakan alat yang disebutkan secara terpisah dan masih memiliki grafik yang bagus, Anda dapat menggunakan Plugin Analysis Collector sebagai bagian dari build Jenkins CI Anda. Sedikit keuntungan dari ini adalah Anda dapat memeriksa konfigurasi PMD / Findbugs / Checkstyle ke dalam SCM Anda dan mengintegrasikannya ke dalam build Maven Anda, daripada mengandalkan server Sonar terpisah.
sumber
Sonar lebih dari sekadar alat-alat ini. Manfaat terbesar adalah gui, yang memungkinkan Anda mengonfigurasi apa pun dengan mudah. Statistik yang ditawarkannya sangat rinci (baris kode, dll.). Dan bahkan menawarkan dukungan hebat untuk cakupan tes dll :)
Di sini Anda dapat melihat baik-baik: http://nemo.sonarsource.org/
sumber
Saya masih akan menggunakan alat ini selain sonar karena mereka dapat gagal membangun maven ketika seseorang melanggar aturan. Sedangkan sonar lebih bersifat retrospektif.
sumber
... beberapa tahun kemudian: tidak, tidak! SonarQube seharusnya dapat mencakup semua aturan dengan penganalisisnya sendiri, tetapi masih ada aturan dari PMD atau CheckStyle yang tidak dicakup oleh SonarQube. Lihat misalnya: PMD ReturnFromFinallyBlock.
sumber
Setidaknya sejak SonarQube 6.3+ tampaknya Findbugs (saat ini) tidak lagi didukung sebagai plugin. Sonarsource sedang mengerjakan penggantian aturan Findbugs dengan plugin Java-nya sendiri.
Mereka bahkan memiliki daftar untuk status penggantian setiap aturan di sini: http://dist.sonarsource.com/reports/coverage/findbugs.html
sumber