SQ Official Doc Link: https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+MSBuild |
By SonarSource – MIT – Issue Tracker – Sources SonarQube Scanner for MSBuild 4.0.0.821 |
Table of Contents |
SonarQube Scanner for MSBuild는 SonarSource와 Microsoft 가 협업을 통해 개발 및 제공하며, MSBuild 프로젝트 및 솔루션을 SonarQube로 분석하기 위해 권장합니다.
커맨드라인 명령어를 통해 사용 가능하며, VSTS-TFS 및 Jenkins의 빌드 스텝으로 활용할 수 있습니다.
sonar.host.url
- 사용할 SonarQube 서버의 URL
sonar.login
- Execute Analysis 권한을 가진 사용자의 Analysis 값을 입력합니다. Anonymous 계정이 해당 권한을 가지고 있지 않은 경우 이 값을 입력해야 합니다분석하고자 하는 프로젝트의 루트 폴더에서 다음 명령어를 실행합니다:
SonarQube.Scanner.MSBuild.exe begin /k:"org.sonarqube:sonarqube-scanner-msbuild" /n:"Project Name" /v:"1.0" MSBuild.exe /t:Rebuild SonarQube.Scanner.MSBuild.exe end |
분석을 위해 추가 파라미터를 설정해야할 경우 추가 파라미터 페이지를 참조하십시오.
커맨드 라인에서 분석 인증 정보(사용자 토큰)를 전달해야 하는 경우, /d:
옵션을 사용하십시오(예: /d:sonar.login=[my token value
)
분석 종료 후 터미널에 표시되는 SonarQube UI Url을 브라우저에 입력하여 결과 페이지로 합니다.
MSBuild 용 스캐너를 MSBuild 파이프라인의 일부로 구성할 수 있습니다. 이 경우 다음의 속성들이 변경됩니다:
CodeAnalysisRuleSet
이 SonarQube의 quality profile에 맞추어 업데이트 됩니다.WarningAsError
기능이 비활성화 됩니다.위의 변경 사항으로 인해 기존 빌드 프로세스에 악영향을 미치는 경우, SonarQube 분석을 위한 별도의 job을 생성할 것을 권장합니다. 또한,
begin
/ end
커맨드 사이에서 수행해야 합니다. 위 예제에서는 /t:Rebuild
를 수행했습니다.sonar.login
" 혹은 "sonar.password
"와 같은 민감한 속성은 보안상의 의유로 디스크에 보관하지 않습니다. 커맨드 라인 인자로 해당 속성을 전달하고자 하는 경우에도 해당 과정은 begin
/ end
사이에서 수행해야 합니다.github에서 대부분의 지원 언어를 포함하는 간단한 샘플 프로젝트를 제공하며, 리포지토리를 탐색하거나 샘플 프로젝트를 다운로드할 수 있습니다. projects/languages
디렉토리의 샘플 프로젝트를 확인하십시오.
Web Application 솔루션에 대한 분석은 지원하나, Web Site 솔루션에 대한 분석은 지원하지 않습니다.
여러 분석을 빠르게 연속적으로 수행하고자 하는 경우에는 /nodereuse:false 인자를 msbuild 명령어로 전달하십시오. 그렇지 않은 경우, 새로운 분석 과정에서 요구하는 DLL이 이전 분석에 의해 점유되어 있는 경우 다음 오류를 만날 수 있습니다:
The End Step executable was not found 'D:\***\.sonarqube\bin\MSBuild.SonarQube.Internal.PostProcess.exe'. Please check that the begin step, the build step and the end step are all executed in the same directory. |
오래된 빌드 태스크로 인해 위 오류가 발생합니다. 최신 버전을 다운로드하여 설치하십시오.