2016년 8월 5일 금요일

SonarQube Scanner 사용하기

jenkins에서 sonarqube를 사용하는 방법이 sonarqube 4.x 이후 scanner가 나오면서 변경되었다. (중간에 sonar-runner 라는 이름이었다가 scanner로 변경됨)

sonarqube 3.x 버전에서는maven의 sonar:sonar 명령어를 통해 실행하였는데 maven을 통한 실행이라 모듈형 프로젝트의 실행은 편한 장점은 있지만 상당히 느렸다.

scanner는 단독 실행하기 때문에 maven을 경유하는 비용이 없어졌다.

대신 scanner에서 실행할 수 있는 기준을 명시한 sonar-project.properties를 프로젝트에 추가해야한다.

기본적인 사용방법은 해당 사이트의 document에서 확인할 수 있다.
[SonarQube Scanner document]

multi module 형태의 maven 프로젝트의 경우 각 모듈에 대한 선언을 해주어야 한다.
이 때 pom 타입의 packaging은 대상에서 제외하여야 한다.
대략 아래와 같이 선언하면 된다.

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

sonar.sources=.
sonar.java.source=1.8
sonar.sourceEncoding=UTF-8
sonar.exclusions=**/generated-sources/*,**/test/*
sonar.test.exclusions=**/test/*

sonar.modules=bluesky-core,bluesky-test,\
bluesky-opensource-jdbc,\
bluesky-opensource-data-jpa,\
bluesky-opensource-data-mongodb,\
bluesky-opensource-security,\
bluesky-opensource-boot-autoconfigure,\
bluesky-app-user,\
bluesky-app-blog,\
bluesky-app-bookkeeping,\
bluesky-app-domain,\
bluesky-app-api-battlenet,\
bluesky-web-default
#bluesky-parent,\
#bluesky-opensource,\
#bluesky-app,\
#bluesky-web,\

bluesky-core.sonar.projectBaseDir=bluesky-parent/bluesky-core
bluesky-test.sonar.projectBaseDir=bluesky-parent/bluesky-test
#bluesky-opensource.sonar.projectBaseDir=bluesky-parent/bluesky-opensource
bluesky-opensource-jdbc.sonar.projectBaseDir=bluesky-parent/bluesky-opensource/bluesky-opensource-jdbc
bluesky-opensource-data-jpa.sonar.projectBaseDir=bluesky-parent/bluesky-opensource/bluesky-opensource-data-jpa
bluesky-opensource-data-mongodb.sonar.projectBaseDir=bluesky-parent/bluesky-opensource/bluesky-opensource-data-mongodb
bluesky-opensource-security.sonar.projectBaseDir=bluesky-parent/bluesky-opensource/bluesky-opensource-security
bluesky-opensource-boot-autoconfigure.sonar.projectBaseDir=bluesky-parent/bluesky-opensource/bluesky-opensource-boot-autoconfigure
#bluesky-app.sonar.projectBaseDir=bluesky-parent/bluesky-app
bluesky-app-user.sonar.projectBaseDir=bluesky-parent/bluesky-app/bluesky-app-user
bluesky-app-blog.sonar.projectBaseDir=bluesky-parent/bluesky-app/bluesky-app-blog
bluesky-app-bookkeeping.sonar.projectBaseDir=bluesky-parent/bluesky-app/bluesky-app-bookkeeping
bluesky-app-domain.sonar.projectBaseDir=bluesky-parent/bluesky-app/bluesky-app-domain
bluesky-app-api-battlenet.sonar.projectBaseDir=bluesky-parent/bluesky-app/bluesky-app-api-battlenet
#bluesky-web.sonar.projectBaseDir=bluesky-parent/bluesky-web
bluesky-web-default.sonar.projectBaseDir=bluesky-parent/bluesky-web/bluesky-web-default

댓글 없음:

댓글 쓰기