파란하늘의 지식창고
article thumbnail
Published 2019. 7. 31. 02:00
SonarQube 사용하기 Study/CI&CD
반응형

SonarQube 7.9.1 기준으로 작성함
개인 공부용으로 사용하는 것이라 windows 기준으로 설명함

SonarQube는 코드에서 버그, 취약점 및 code smell을 감지하는 자동 code review tool이다.
기존 workflow와 통합하여 프로젝트 branches와 pull request 간 지속적인 코드 검사를 가능하게 한다.

https://www.sonarqube.org/

Community, Developer, Enterprise, Data Center 4종류가 있고 이 중 Community 에디션이 free & opensource이다.

현재 25개 언어를 대상으로 code review를 할 수 있다.

SonarQube 설치하기 (Docker 기준)

SonarQube만 사용하면 로컬 H2 캐시로 code review 결과가 저장된다.
따로 DB에 저장하는 것이 좋다.
이번 버전부터 mysql은 더 이상 지원하지 않는다.
https://community.sonarsource.com/t/end-of-life-of-mysql-support/8667

postgreSQL을 권장하므로 설치해본다.

docker run -d --name postgres -p 5432:5432 -e POSTGRES_PASSWORD=bluesky -e POSTGRES_USER=bluesky --network bluesky-network postgres

해당 서버에 database를 생성한다

CREATE DATABASE "sonarqube"

sonarqube를 생성한다.

docker run -d --name sonarqube 
    -p 9000:9000 \
    -e sonar.jdbc.username=bluesky \
    -e sonar.jdbc.password=bluesky \
    -e sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube \
    sonarqube

해당 서버에 접속하면 된다. http://localhost:9000

SonarQube 설치하기 (직접 설치 기준)

1년 전쯤엔 windows 10 pro의 docker에서 SonarQube가 잘 동작했는데 현재 버전 (7.9.1)에서 send message failed netty4 tcpchannel이 발생하고 서버가 계속 다운된다.
docker를 사용하지 않고 직접 다운로드하여 설치한 경우는 잘 동작한다.
https://www.sonarqube.org/downloads/

zip 파일을 다운로드하여 압축을 풀고 해당 폴더의 conf/sonar-properties에 db 설정을 한다.

sonar.jdbc.username=bluesky
sonar.jdbc.password=bluesky
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube

bin 폴더의 적당한 os의 실행파일을 실행한다.

scanner 다운로드하기

SonarQube 3.x 이전엔 maven 설정 후 mvn sonar:sonar 명령을 통해 SonarQube를 실행했지만 이후엔 scanner가 제공된다.
https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

scanner를 다운로드하여 적당한 위치에 풀고 sonar-project.properties 가 있는 위치에서 해당 파일을 실행하면 된다.

sonar-project.properties는 대강 다음과 같다.

sonar.projectKey=bluesky-boot
sonar.projectName=bluesky-boot
sonar.projectVersion=0.0.1-SHAPSHOT

sonar.scm.provider=git

sonar.sources=src/main
sonar.tests=src/test
sonar.java.binaries=.
sonar.java.source=11
sonar.sourceEncoding=UTF-8

sonar.modules=bluesky-boot-autoconfigure

bluesky-boot-autoconfigure.projectBaseDir=bluesky-boot-autoconfigure
C:\Users\luver\git\bluesky-boot>C:\Users\luver\sonar-scanner-4.0.0.1744-windows\bin\sonar-scanner.bat

code review 결과는 아래처럼 저장된다.

반응형
profile

파란하늘의 지식창고

@Bluesky_

내용이 유익했다면 광고 배너를 클릭 해주세요