SonarQube และ SonarLint แตกต่างกัน


90

sonarQube แตกต่างจาก SonarLint อย่างไร? SonarQube มีเซิร์ฟเวอร์ที่เชื่อมโยงอยู่และ Sonar lint ทำงานได้เหมือนปลั๊กอิน แต่อะไรคือความแตกต่างเฉพาะของพวกเขา?

คำตอบ:


135

SonarLintอาศัยอยู่ใน IDE (IntelliJ, Eclipse และ Visual Studio) เท่านั้น มีวัตถุประสงค์เพื่อให้ข้อเสนอแนะทันทีในขณะที่คุณพิมพ์รหัสของคุณ สำหรับสิ่งนี้จะเน้นที่รหัสที่คุณกำลังเพิ่มหรืออัปเดต

SonarQubeเป็นเซิร์ฟเวอร์ส่วนกลางที่ประมวลผลการวิเคราะห์ทั้งหมด (เรียกใช้โดยเครื่องสแกน SonarQube ต่างๆ) จุดประสงค์คือให้วิสัยทัศน์ 360 °เกี่ยวกับคุณภาพของฐานรหัสของคุณ ด้วยเหตุนี้ระบบจะวิเคราะห์แหล่งที่มาทั้งหมดของโครงการของคุณเป็นประจำ

ทั้ง SonarLint และ SonarQube ใช้เครื่องวิเคราะห์ซอร์สโค้ดแบบคงที่ซึ่งส่วนใหญ่เขียนโดยใช้เทคโนโลยี SonarSource


ขอบคุณ @Fabrice! แต่คำถามติดตามผลหนึ่งข้อ ฉันพบความแตกต่างในรายงานสำหรับ sonarqube และ sonar lint สำหรับฐานรหัสเวอร์ชันเดียวกัน นี่เป็นปัญหาดั้งเดิมที่ทำให้ฉันต้องเขียนคำถามนี้ ปัญหาที่อาจเกิดขึ้นคืออะไร?
Jeevan Varughese

7
คุณควร "เชื่อมต่อ" SonarLint กับ SonarQube และผูกโปรเจ็กต์โลคัลของคุณ (ใน IDE) กับรีโมต (ใน SonarQube) เพื่อให้แน่ใจว่าคุณใช้โปรไฟล์คุณภาพเดียวกัน (= ชุดกฎ) ในทั้งสองโลก
Fabrice - SonarSource Team

ขอบคุณ Fabrice นอกจากนี้ยังอาจหมายความว่าชุดกฎที่แตกต่างกันจะสามารถให้รายงานที่แตกต่างกันได้ เช่นเดียวกับที่อาจมีความแตกต่างระหว่างรายงาน v5.6 และ v6.0 สำหรับฐานรหัสเวอร์ชันเดียวกัน
Jeevan Varughese

1
คุณอาจพบว่าสิ่งนี้น่าสนใจ บทความนี้ช่วยให้ฉันเข้าใจความแตกต่างระหว่างโหมดการเรียกใช้ SonarQube ที่แตกต่างกัน 3 โหมด ได้แก่ การวิเคราะห์ (ผู้สร้างรายงานใน SonarQube UI) แสดงตัวอย่างและส่วนเพิ่ม (ใช้โดย SonarLint) blog.sonarsource.com/…
YB Cause

23

ควรเพิ่มว่า SonarQube ยังทำการสแกนด้วยเครื่องวิเคราะห์ของบุคคลที่สาม (findBugs, checkstyle, PMD) ในขณะที่ SonarLint ไม่รวมสิ่งเหล่านี้ ฉันคิดว่าเหตุผลคือการจัดลำดับความสำคัญของประสิทธิภาพและ findBugs อาศัย java byte-code

ดังนั้นการค้นพบของคุณใน SonarQube และ SonarLint จึงอาจแตกต่างกันไปหากโปรไฟล์คุณภาพพื้นฐานใช้เครื่องสแกนของบุคคลที่สาม


2
คุณพูดถูก @guitarlum และเหตุผลหลักไม่ใช่เหตุผลที่คุณกล่าวถึง แต่ความจริงที่ว่าเราเชื่ออย่างแท้จริงว่า SonarJava (ตัววิเคราะห์ Java ที่พัฒนาโดย SonarSource) มีมากกว่า PMD + Findbugs ทั้งหมด
Fabrice - SonarSource Team

3
@ Fabrice-SonarSourceTeam ฉันเข้าใจเหตุผลของคุณและอาจเป็นจริงสำหรับ FindBugs และ PMD เริ่มต้นอย่างไรก็ตามในด้านความปลอดภัยของแอปพลิเคชัน ได้แก่ FindSecurityBugs ( find-sec-bugs.github.io ) ซึ่งในความคิดของฉันเป็นการสแกนช่องโหว่ที่ดีที่สุด SonarJava สั้น
guitarlum

5

SonarQubeเป็นเซิร์ฟเวอร์ที่คุณสามารถโฮสต์โครงการของคุณและดำเนินการวิเคราะห์ในขณะที่SonarLintเป็นตัวแทนที่ช่วยให้เราเชื่อมต่อกับ SonarQube นี้และดำเนินการวิเคราะห์จากระยะไกล SonarLint สามารถใช้กับ IDE หรือสามารถดำเนินการผ่านคำสั่ง CLI

SonarLint มีชุดกฎเริ่มต้นของตัวเอง แต่เมื่อเชื่อมต่อกับ SonarQube ผู้ใช้สามารถนำเข้ากฎจาก SonarQube ซึ่งจริงๆแล้วเป็นมากกว่าชุดกฎมาตรฐาน เราสามารถรวม PDM, CodeStyle และตัวตรวจสอบอื่น ๆ บน SonarQube และสร้างกฎที่กำหนดเองได้

ข้อเท็จจริงสองประการที่ฉันต้องการพูดถึงที่ฉันเรียนรู้จากประสบการณ์ของฉัน SonarLint จะไม่สืบทอดกฎที่กำหนดเองเหล่านั้นจาก SonarQube ประการที่สอง Sonar ไม่ทำงานในชั้นเรียนทดสอบ


0

Sonarqube เรียกใช้การกำหนดค่ากฎบนเซิร์ฟเวอร์เรารวมเข้ากับโครงสร้าง TFS ของเรา SonarLint ทำงานใน IDE ดังนั้นก่อนที่ฉันจะยอมรับรหัสของฉันฉันรู้ว่าบรรทัดใดละเมิดกฎใดใน IDE


คำถามคือเกี่ยวกับสแกนเนอร์แตกต่างกันอย่างไร? คุณได้รับคำตอบเป็นหลักฐานสำหรับคำถาม เซิร์ฟเวอร์และปลั๊กอินถูกกล่าวถึงแล้วในคำถาม
Jeevan Varughese

-1

SonarLint : ใช้เฉพาะใน IDE (IntelliJ, Eclipse และ Visual Studio) มีวัตถุประสงค์เพื่อให้ข้อเสนอแนะทันทีในขณะที่คุณพิมพ์รหัสของคุณ

SonarQube : เป็นเซิร์ฟเวอร์กลางที่ประมวลผลการวิเคราะห์แบบคงที่ จุดประสงค์คือให้วิสัยทัศน์ 360 °เกี่ยวกับคุณภาพของฐานรหัสของคุณ สำหรับสิ่งนี้จะวิเคราะห์รายการต้นทางทั้งหมดของโครงการของคุณ คุณสามารถกำหนดค่าวิธีวิเคราะห์โครงการของคุณได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.