이 문서는 Windows 환경에서 SonarQube Scanner를 이용하여 C 빌드를 수행하는 방법에 대하여 가이드한다.
1. SonarQube MSBuild 설치
다음 링크를 통해 SonarQube MSbuil를 설치한다 (MSBuild for .NET Framwork 또는 .NET Core).
2. 빌드 환경 준비
C/C++ 프로젝트는 SonarQube Build Wrapper가 필요하다. Build Wrapper는 C/C++ 프로젝트로부터 정보를 수정하는 역할을 하며, 빌드에 영향을 주지 않는다.
2.1 Build Wrapper 다운로드
MSBuild 용 Sonar-scanner 다운로드
2.2 압축 해제
다운로드 받은 Build Wrapper를 적절한 폴더로 압축 해제한다.
sonar-scanner-msbuild-4.10.0.19059-net46.zip
2.3 PATH에 해당 경로 등록
PATH에 해당 경로를 등록하거나 빌드 시 전체 경로를 이용하여 수행할 수 있다.
3. Build Wrapper를 통한 빌드 및 분석
3.1 Sample 파일 다운로드
만약 C/C++ 샘플 파일은 다음 Github에서 다운로드 받을 수 있다.
설치 후 PATH 환경 변수에 설치 폴더 추가를 권장합니다.
3.2 SonarQube.Analysis.xml 수정
<install dir>/SonarQube.Analysis.xml 파일 수정
아래 Sample 파일을 참고한다.
<SonarQubeAnalysisProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.sonarsource.com/msbuild/integration/2015/1"> <Property Name="sonar.host.url">http://localhost:9000</Property> <Property Name="sonar.login">[my-user-token]</Property> <!---- 또는 <Property Name="sonar.login">admin</Property> <Property Name="sonar.password">admin</Property> ----> </SonarQubeAnalysisProperties>
3.3 빌드 및 분석 수행
Microsoft Developer tool에서 제공하는 Command Prompt 창을 열어 batch 파일을 수행한다.
sample batch file
SonarScanner.MSBuild.exe begin /k:"cs-and-cpp-project-key" /n:"My C# and C++ project" /v:"1.0" /:sonar.cfamily.build-wrapper-output="build_wrapper_output_directory" build-wrapper-win-x86-64.exe --out-dir build_wrapper_output_directory MSBuild.exe /t:Rebuild SonarScanner.MSBuild.exe end
분석 완료 후 bw-outputs 폴더에 다음 파일이 생성된다.
- build-wrapper-dump.json
- build-wrapper.log.