sonarQube는 SonarLint와 정확히 어떻게 다릅니 까? SonarQube에는 연결된 서버가 있으며 Sonar lint는 플러그인처럼 작동합니다. 그러나 그들의 구체적인 차이점은 무엇입니까?
답변:
SonarLint 는 IDE (IntelliJ, Eclipse 및 Visual Studio)에만 있습니다. 그 목적은 코드를 입력 할 때 즉각적인 피드백을 제공하는 것입니다. 이를 위해 추가하거나 업데이트하는 코드에 중점을 둡니다.
SonarQube 는 전체 분석을 처리하는 중앙 서버입니다 (다양한 SonarQube 스캐너에 의해 트리거 됨). 그 목적은 코드베이스의 품질에 대한 360 ° 비전을 제공하는 것입니다. 이를 위해 정기적으로 프로젝트의 모든 소스 라인을 분석합니다.
SonarLint와 SonarQube는 모두 동일한 정적 소스 코드 분석기에 의존합니다. 대부분은 SonarSource 기술을 사용하여 작성됩니다.
SonarQube는 타사 분석기 (findBugs, checkstyle, PMD)로도 스캔을 수행하지만 SonarLint 는 그렇지 않습니다. 포함 . 그 이유는 성능에 대한 우선 순위와 java 바이트 코드에 의존하는 findBugs 때문이라고 생각합니다.
따라서 기본 품질 프로필이 타사 스캐너를 사용하는 경우 SonarQube 및 SonarLint의 결과가 달라질 수 있습니다.
SonarQube 는 프로젝트를 호스팅하고 분석을 실행할 수있는 서버 인 반면 SonarLint는 는이 SonarQube와 연결하여 원격으로 분석을 실행할 수있는 에이전트입니다. SonarLint는 IDE와 함께 사용하거나 CLI 명령을 통해 실행할 수도 있습니다.
SonarLint에는 자체 기본 규칙 세트가 포함되어 있지만 SonarQube에 연결되면 사용자는 실제로 표준 규칙 세트 이상의 규칙을 SonarQube에서 가져올 수 있습니다. PDM, CodeStyle 및 기타 여러 검사기를 SonarQube에 통합하고 사용자 지정 규칙을 만들 수 있습니다.
제가 경험을 통해 배운 두 가지 사실은 SonarLint는 SonarQube에서 이러한 사용자 지정 규칙을 상속하지 않으며 두 번째로 Sonar는 테스트 클래스에서 작동하지 않습니다.
Sonarqube는 서버에서 규칙 유효성 검사를 실행합니다. TFS 빌드에 통합했습니다. SonarLint는 IDE에서 실행되므로 코드를 커밋하기 전에 어떤 줄이 IDE 내부의 규칙을 위반하는지 알고 있습니다.