Perbedaan SonarQube Dan SonarLint


90

Bagaimana sebenarnya sonarQube berbeda dari SonarLint? SonarQube memiliki server yang terkait dengannya dan Sonar lint bekerja lebih seperti plugin. Tetapi apa perbedaan spesifik mereka?

Jawaban:


135

SonarLint hanya hidup di IDE (IntelliJ, Eclipse dan Visual Studio). Tujuannya adalah untuk memberikan umpan balik seketika saat Anda mengetik kode Anda. Untuk ini, ini berkonsentrasi pada kode apa yang Anda tambahkan atau perbarui.

SonarQube adalah server pusat yang memproses analisis penuh (dipicu oleh berbagai Pemindai SonarQube). Tujuannya adalah untuk memberikan visi 360 ° tentang kualitas basis kode Anda. Untuk ini, ini menganalisis semua baris sumber proyek Anda secara teratur.

Baik SonarLint dan SonarQube mengandalkan penganalisis kode sumber statis yang sama - sebagian besar ditulis menggunakan teknologi SonarSource.


Terima kasih @Fabrice! Tapi satu pertanyaan lanjutan. Saya menemukan perbedaan dalam laporan untuk sonarqube dan sonar lint untuk versi basis kode yang sama. Ini adalah masalah asli yang membuat saya menulis pertanyaan ini. Apa masalahnya?
Jeevan Varughese

7
Anda harus "menghubungkan" SonarLint ke SonarQube dan mengikat proyek lokal Anda (di IDE) ke proyek jarak jauh (di SonarQube) untuk memastikan bahwa Anda menggunakan profil kualitas yang sama (= kumpulan aturan) di kedua dunia.
Fabrice - Tim SonarSource

Terima kasih Fabrice. Ini juga bisa berarti bahwa versi yang berbeda akan set aturan yang berbeda dapat memberikan laporan yang berbeda kan? Sepertinya ada perbedaan antara laporan v5.6 dan v6.0 untuk versi basis kode yang sama.
Jeevan Varughese

1
Anda mungkin menganggap ini menarik; artikel ini membantu saya memahami perbedaan antara 3 mode peluncuran SonarQube yang berbeda: analisis (yang menghasilkan laporan di SonarQube UI), pratinjau, dan inkremental (digunakan oleh SonarLint). blog.sonarsource.com/…
YB Penyebab

23

Perlu ditambahkan bahwa SonarQube juga melakukan pemindaian dengan penganalisis pihak ketiga (findBugs, checkstyle, PMD) sedangkan SonarLint tidak menyertakannya. Saya pikir alasannya adalah memprioritaskan kinerja dan findBugs mengandalkan kode-byte java.

Dengan demikian, temuan Anda di SonarQube dan SonarLint dapat bervariasi, jika profil kualitas yang mendasarinya menggunakan pemindai pihak ketiga.


2
Anda benar @guitarlum, dan alasan utamanya bukanlah yang Anda sebutkan, tetapi fakta bahwa kami benar-benar percaya bahwa SonarJava (penganalisis Java yang dikembangkan oleh SonarSource) mengalahkan PMD + Findbugs sama sekali.
Fabrice - Tim SonarSource

3
@ Fabrice-SonarSourceTeam Saya mengerti alasan Anda dan ini mungkin benar untuk FindBugs dan PMD default, namun di bidang keamanan aplikasi, yaitu FindSecurityBugs ( find-sec-bugs.github.io ), yang menurut saya adalah pemindaian kerentanan terbaik, SonarJava gagal.
guitarlum

5

SonarQube adalah server tempat Anda dapat menghosting proyek dan menjalankan analisis, sedangkan SonarLint adalah agen yang memungkinkan kita untuk terhubung dengan SonarQube ini dan menjalankan analisis dari jarak jauh. SonarLint dapat digunakan dengan IDE atau juga dapat dijalankan melalui perintah CLI.

SonarLint berisi kumpulan aturan defaultnya sendiri, tetapi saat terhubung ke SonarQube, pengguna dapat mengimpor aturan dari SonarQube yang sebenarnya lebih dari sekadar kumpulan aturan standar. Kami dapat mengintegrasikan PDM, CodeStyle dan banyak pemeriksa lainnya di SonarQube dan membuat aturan khusus.

Dua fakta yang ingin saya sebutkan yang saya pelajari dari pengalaman saya, SonarLint tidak akan mewarisi aturan kustom tersebut dari SonarQube, kedua Sonar tidak berfungsi pada kelas Tes.


0

Sonarqube menjalankan valiasi aturan di server. Kami mengintegrasikannya ke build TFS kami. SonarLint berjalan di IDE jadi sebelum saya memasukkan kode saya, saya tahu baris apa yang melanggar aturan mana di dalam IDE.


Pertanyaannya adalah tentang bagaimana pemindai itu berbeda? Jawaban Anda diberikan sebagai premis untuk pertanyaan tersebut. Server dan plugin sudah disebutkan dalam pertanyaan.
Jeevan Varughese

-1

SonarLint : hanya digunakan di IDE (IntelliJ, Eclipse dan Visual Studio). Tujuannya adalah untuk memberikan umpan balik seketika saat Anda mengetik kode Anda.

SonarQube : adalah server pusat yang memproses analisis statis penuh. Tujuannya adalah untuk memberikan visi 360 ° tentang kualitas basis kode Anda. Untuk ini, ini menganalisis semua baris sumber proyek Anda. Anda dapat mengonfigurasi cara menganalisis proyek Anda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.