본 포스팅은 Jenkins(젠킨스)와 SonarQube(소나)가 설치되어 있다는 전제하에 정리한다.
! 설치전에 알아야 할 내용.
SonarQube는 JDK버전에 맞춰 설치하여야 한다. Jenkins에서 설치하는 플러그인도 버전을 맞춰 설치해 주어야 한다.
본인은 JDK 1.7을 사용하므로 SonarQube 5.5버전을 설치하였고 젠킨스 플러그인은 2.4.4를 설치하였다.
(소나 플러그인의 현재 버전은 2.5이며 JDK 1.8 이상에서만 설치가 가능하다.)
플러그인은 젠킨스에서 최신 버전만 리스트업되므로 Archive 메뉴를 이용하여 해당 버전을 다운로드 받아 직접설치 해 주어야 한다. 다운로드 받는 파일은 hpi 확장자를 갖는다.
- Jenkins 버전 : 2.7.4
- SonarQube 버전 : 5.5
- 젠킨스에서 연동에 필요한 플러그인을 설치한다.
1.1. Jenkins 관리 ▶ 플러그인 관리 ▶ 설치가능 탭으로 이동
1.2. 필터 입력란에 sonarqube를 입력한 후 SonarQube Plugin 체크
1.3. 지금 다운로드하고 재시작 후 설치하기 버튼을 눌러 플러그인 설치 - 설치 한 후 젠킨스를 재 시작한다.
- 프로젝트 ▶ 구성 메뉴로 이동
- Build 항목에서 Execute SonarQube Scanner 선택
- 소나에 등록 할 프로젝트에서 필요한 정보를 설정한다.
※ 항목 별 설명
설정 정보는 필수 항목과 옵션 항목으로 구성되어 있으며 옵션 항목은 필요한 경우에만 설정하면 된다.
- Task to run : 옵션 항목이며 필요한 경우 설정한다.
- JDK : 프로젝트에서 사용하고 있는 JDK 버전을 선택(선택 항목에 없다면 Jenkins 관리▶ Global Tool Configuration 에서 설치)
- Path to project properties : 옵션 항목이며 sonar-project.properties 파일을 지정하고자 한다면 설정.
- Analysis properties : SonarQube에 프로젝트를 등록하고 분석하는데 필요한 프로퍼티 정보를 설정한다.
프로퍼티 설정에 대한 자세한 내용은 아래를 참고.
# required metadata sonar.projectKey=my:project sonar.projectName=My project sonar.projectVersion=1.0 # path to source directories (required) sonar.sources=myproject/src/main/java # path to test source directories (optional) #sonar.tests=testDir1,testDir2 # path to project binaries (optional), for example directory of Java bytecode #sonar.binaries=binDir # optional comma-separated list of paths to libraries. Only path to JAR file and path to directory of classes are supported. #sonar.libraries=path/to/library.jar,path/to/classes/dir # Uncomment this line to analyse a project which is not a java project. # The value of the property must be the key of the language. sonar.language=java # Additional parameters #sonar.my.property=value
필수 설정 프로퍼티
- sonar.projectKey
소나에서 관리 할 프로젝트 키이며 prefix : suffix 형태로 설정한다. 굳이 : 을 사이에 넣을 필요는 없을것 같으나
예제에서 구성 해 놓은대로 설정한다. 키 값은 중복되지 않도록 설정한다. - sonar.projectName
프로젝트 명칭을 입력한다. 양식에 제약은 없는 듯 하다. - sonar.projectVersion
프로젝트 버전을 입력한다. - sonar.sources
Jenkins에서 빌드 된 소스 파일의 경로를 설정한다. Jenkins의 프로젝트 기본 경로 다음의 경로를 설정하면 된다.
예) myproject/src/main/java
(/var/lib/jenkins/job/project/workspace 뒤의 경로를 지정한다. workspace까지는 기본 경로임.)
본인은 java 소스코드만 분석하고자 하여 java 패스까지 설정하였으나 html, javascript 등 스크립트 언어까지 분석하고자
한다면 java와 스크립트 폴더 경로가 나누어지는 경로까지 설정한다.
요즘 흔히쓰는 경로 구조는 src > main > java/webapp 형태이므로 src/main까지만 설정하면 된다.
출처: http://shy-blg.tistory.com/entry/Jenkins와-SonarQube-연동-방법 [소울메이커]
현재 내가 쓰는 설정
#프로젝트키
sonar.projectKey= AutoCAD_MPlot
#프로젝트 이름
sonar.projectName=AutoCAD_MPlot
#버전
sonar.projectVersion=1.0
# Comma-separated paths to directories with sources (required)
sonar.sources=dcsMPlot
# Encoding of the source files
sonar.sourceEncoding=euc-kr
# Path where Build Wrapper files were output to
sonar.cfamily.build-wrapper-output=build-wrapper-out
# Path to the code coverage xml report produced by Visual Studio coverage tool (codecoverage.exe)
sonar.cfamily.vscoveragexml.reportsPath=codeCoverage.xml
# scm 을 서버 환경 설정에서 off 햇더라도 켜져잇는것으로 인식되는것 같음.
sonar.scm.disabled=true