SonarQube와 SonarLint의 차이점


89

sonarQube는 SonarLint와 정확히 어떻게 다릅니 까? SonarQube에는 연결된 서버가 있으며 Sonar lint는 플러그인처럼 작동합니다. 그러나 그들의 구체적인 차이점은 무엇입니까?

답변:


131

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 2016 년

Fabrice에게 감사드립니다. 이것은 또한 다른 버전이 다른 규칙 세트가 다른 보고서를 올바르게 제공 할 수 있음을 의미 할 수 있습니다. 동일한 버전의 코드베이스에 대해 v5.6과 v6.0 보고서간에 차이가있을 수 있습니다.
Jeevan Varughese

1
이것이 흥미로울 것입니다. 이 기사는 분석 (SonarQube UI에서 보고서를 생성하는 사람), 미리보기 및 증분 (SonarLint에서 사용)의 세 가지 SonarQube 실행 모드 간의 차이점을 이해하는 데 도움이되었습니다. blog.sonarsource.com/…
YB 원인

23

SonarQube는 타사 분석기 (findBugs, checkstyle, PMD)로도 스캔을 수행하지만 SonarLint 는 그렇지 않습니다. 포함 . 그 이유는 성능에 대한 우선 순위와 java 바이트 코드에 의존하는 findBugs 때문이라고 생각합니다.

따라서 기본 품질 프로필이 타사 스캐너를 사용하는 경우 SonarQube 및 SonarLint의 결과가 달라질 수 있습니다.


2
@guitarlum이 맞습니다. 주된 이유는 언급 한 이유가 아니지만 SonarJava (SonarSource에서 개발 한 Java 분석기)가 PMD + Findbugs를 모두 능가한다고 진정으로 믿습니다.
파브리스 - SonarSource 팀

3
@ Fabrice-SonarSourceTeam 나는 당신의 추론을 이해하고 이것은 기본 FindBugs 및 PMD에 대해 사실 일 수 있지만 응용 프로그램 보안 영역에서 FindSecurityBugs ( find-sec-bugs.github.io )는 내 의견으로는 최고의 취약점 스캔입니다. SonarJava는 부족합니다.
guitarlum

4

SonarQube 는 프로젝트를 호스팅하고 분석을 실행할 수있는 서버 인 반면 SonarLint는 는이 SonarQube와 연결하여 원격으로 분석을 실행할 수있는 에이전트입니다. SonarLint는 IDE와 함께 사용하거나 CLI 명령을 통해 실행할 수도 있습니다.

SonarLint에는 자체 기본 규칙 세트가 포함되어 있지만 SonarQube에 연결되면 사용자는 실제로 표준 규칙 세트 이상의 규칙을 SonarQube에서 가져올 수 있습니다. PDM, CodeStyle 및 기타 여러 검사기를 SonarQube에 통합하고 사용자 지정 규칙을 만들 수 있습니다.

제가 경험을 통해 배운 두 가지 사실은 SonarLint는 SonarQube에서 이러한 사용자 지정 규칙을 상속하지 않으며 두 번째로 Sonar는 테스트 클래스에서 작동하지 않습니다.


0

Sonarqube는 서버에서 규칙 유효성 검사를 실행합니다. TFS 빌드에 통합했습니다. SonarLint는 IDE에서 실행되므로 코드를 커밋하기 전에 어떤 줄이 IDE 내부의 규칙을 위반하는지 알고 있습니다.


문제는 스캐너가 어떻게 다른지에 관한 것이 었습니다. 당신은 질문에 대한 전제로서 대답합니다. 서버와 플러그인은 이미 질문에 언급되어 있습니다.
Jeevan Varughese 19 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.