이 문서는 Linux 환경에서 SonarQube Scanner를 이용하여 C 빌드를 수행하는 방법에 대하여 가이드한다.
다음 링크를 통해 SonarQube Scanner를 설치한다.
C/C++ 프로젝트는 SonarQube Build Wrapper가 필요하다. Build Wrapper는 C/C++ 프로젝트로부터 정보를 수정하는 역할을 하며, 빌드에 영향을 주지 않는다.
다음 경로를 통해 Build Wrapper를 다운로드 할 수 있다.
전페 Build Wrapper 다운로드
다운로드 받은 Build Wrapper를 적절한 폴더로 압축 해제한다.
PATH에 해당 경로를 등록하거나 빌드 시 전체 경로를 이용하여 수행할 수 있다.
만약 C/C++ 샘플 파일은 다음 Github에서 다운로드 받을 수 있다.
C/C++ 프로젝트의 루트에 sonar-project.properties 파일을 만들고 적당한 값을 입력한다.
아래 Sample 파일을 참고한다.
sonar.projectKey=org.sonarqube:cpp-build-wrapper sonar.projectName=Example of C/C++ Scan (with BuildWrapper) sonar.projectVersion=1.0 sonar.sources=src sonar.language=cpp # The build-wrapper output dir sonar.cfamily.build-wrapper-output=bw-outputs # Encoding of the source files sonar.sourceEncoding=UTF-8 # SonarQube location sonar.host.url=http://10.0.1.2:9000 |
다음과 같이 build-wrapper-linux-x86-64를 통해 빌드를 수행한다.
build-wrapper-linux-x86-64 --out-dir bw_output make clean all sonar-scanner |
만약 상단의 예제 파일을 이용하였다면, 다음과 같이 구성할 수 있다.
/build-wrapper-linux-x86-64 --out-dir bw-outputs ./build.sh sonar-scanner |
저장소로부터 소스 코드를 Checkout하기 위한 Task 설정한다.
빌드를 위한 Task를 구성한다. 아래와 같이 구성할 수 있다.
/data/sonarqube/build-wrapper-linux-x86/build-wrapper-linux-x86-64 --out-dir bw-outputs ./build.sh |
기본 Sonar Scanner 수행한다.