SonarQube ve SonarLint farkı


90

SonarQube'un SonarLint'ten tam olarak farkı nedir? SonarQube'un kendisiyle ilişkili bir sunucusu vardır ve Sonar lint daha çok bir eklenti gibi çalışır. Ama bunların özel farkı nedir?

Yanıtlar:


135

SonarLint yalnızca IDE'de (IntelliJ, Eclipse ve Visual Studio) yaşar. Amacı, kodunuzu yazarken anında geri bildirim vermektir. Bunun için hangi kodu eklediğinize veya güncellediğinize odaklanır.

SonarQube , tam analizleri işleyen merkezi bir sunucudur (çeşitli SonarQube Tarayıcılar tarafından tetiklenir). Amacı, kod tabanınızın kalitesi hakkında 360 ° bir vizyon sağlamaktır. Bunun için projenizin tüm kaynak satırlarını düzenli olarak analiz eder.

Hem SonarLint hem de SonarQube, çoğu SonarSource teknolojisi kullanılarak yazılan aynı statik kaynak kodu analizörlerine dayanır.


Teşekkürler @ Fabrice! Ama bir takip sorusu. Kod tabanının aynı sürümü için sonarqube ve sonar tiftiği raporlarında farklılık buluyorum. Beni bu soruyu yazmaya iten asıl sorun buydu. Sorun ne olabilir?
Jeevan Varughese

7
Her iki dünyada da aynı kalite profillerini (= kural kümeleri) kullandığınızdan emin olmak için SonarLint'i SonarQube'a "bağlamanız" ve yerel projenizi (IDE'de) uzaktaki projeye (SonarQube'de) bağlamanız gerekir.
Fabrice - SonarSource Takımı

Teşekkürler Fabrice. Bu aynı zamanda farklı sürümlerin farklı kural kümelerinin farklı raporlar verebileceği anlamına da gelebilir. Aynı kod tabanı sürümü için v5.6 ve v6.0 raporları arasında bir fark olabilir.
Jeevan Varughese

1
Bunu ilginç bulabilirsin; bu makale, 3 farklı SonarQube başlatma modu arasındaki farkı anlamama yardımcı oldu: analiz (SonarQube kullanıcı arayüzünde raporu oluşturan kişi), önizleme ve artımlı (SonarLint tarafından kullanılır). blog.sonarsource.com/…
YB Nedeni

23

SonarQube'un 3. taraf analizörlerle (findBugs, checkstyle, PMD) taramalar gerçekleştirdiği, ancak SonarLint'in bunları içermediği de eklenmelidir . Bunun sebebinin performansa öncelik vermesi ve java bayt koduna dayanan findBugs olduğunu düşünüyorum.

Dolayısıyla, temel kalite profili 3. taraf tarayıcılar kullanıyorsa, SonarQube ve SonarLint'teki bulgularınız değişebilir.


2
Haklısınız @guitarlum ve birincil neden bahsettiğiniz değil, SonarJava'nın (SonarSource tarafından geliştirilen Java analizörü) PMD + Findbug'lardan tamamen ağır olduğuna gerçekten inanıyor olmamız.
Fabrice - SonarSource Ekibi

3
@ Fabrice-SonarSourceTeam Gerekçenizi anlıyorum ve bu varsayılan FindBugs ve PMD için doğru olabilir, ancak uygulama güvenliği alanında, yani FindSecurityBugs ( find-sec-bugs.github.io ), ki bence en iyi güvenlik açığı taraması, SonarJava yetersiz kalıyor.
guitarlum

5

SonarQube , projelerinizi barındırabileceğiniz ve analiz yapabileceğiniz bir sunucudur, oysa SonarLint , bu SonarQube ile bağlantı kurmamızı ve analizi uzaktan yürütmemizi sağlayan bir aracıdır. SonarLint, IDE ile kullanılabilir veya CLI komutları aracılığıyla da çalıştırılabilir.

SonarLint, kendi varsayılan kural setini içerir, ancak SonarQube'ye bağlandığında kullanıcılar, aslında standart kural setinden daha fazlası olan kuralları SonarQube'den içe aktarabilir. PDM, CodeStyle ve diğer birçok denetleyiciyi SonarQube üzerinde entegre edebilir ve özel kurallar oluşturabiliriz.

Deneyimlerimden öğrendiğimden bahsetmek istediğim iki gerçek, SonarLint bu özel kuralları SonarQube'den devralmayacak, ikinci olarak Sonar Test sınıflarında çalışmıyor.


0

Sonarqube, sunucuda kural doğrulamalarını çalıştırır. Onu TFS yapılarımıza entegre ettik. SonarLint IDE'de çalışır, bu yüzden kodumu işlemeden önce IDE içindeki hangi satırların hangi kuralları ihlal ettiğini biliyorum.


Soru tarayıcının nasıl farklı olduğuyla ilgiliydi? Cevabınız soruya öncül olarak verilmiştir. Sunucu ve eklentiler, soruda zaten belirtilmiştir.
Jeevan Varughese

-1

SonarLint : yalnızca IDE'de kullanılır (IntelliJ, Eclipse ve Visual Studio). Amacı, kodunuzu yazarken anında geri bildirim vermektir.

SonarQube : tam statik analizleri işleyen merkezi bir sunucudur. Amacı, kod tabanınızın kalitesi hakkında 360 ° bir vizyon sağlamaktır. Bunun için projenizin tüm kaynak satırlarını analiz eder. Projelerinizin nasıl analiz edileceğini yapılandırabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.