프로젝트 코드 가시화를 위한 Jenkins와 SonarQube 연동

by Tom posted Aug 31, 2015
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

이번 포스트는 프로젝트의 코드를 가시화할 수 있는 Dashboard인 SonarQube와 Jenkins의 연동 방법에 대해서 작성합니다. Jenkins와 SonarQube의 연동을 통해 Build 서버에서 Build가 수행될때마다 현재 코드의 품질 지표를 SonarCode에서 실시간으로 확인할 수 있습니다. 


1. 준비사항

1.1 Jenkins 설치

아래 링크의 Jenkins 설치 가이드를 통해 Jenkins를 설치합니다.

  • http://pseg.or.kr/pseg/infoinstall/4872

 

1.2 SonaQube 설치

아래 링크의 SonarQube 설치 가이드를 통해 SonarQube를 설치합니다. 

  • http://pseg.or.kr/pseg/infoinstall/3223


2. Jenkins Plugin 설치

SonarQube와 통합하기 위해 Jenkins 관리 > 플러그인 관리 메뉴를 선택합니다.

설치 가능 탭에서 SonarQube를 검색하여 체크를 하고 재시작 없이 설치하기 버튼을 클릭하여 설치를 진행합니다. 


JenkinsSonar01.PNG


3. Jenkins와 SonarQube 연동 설정

3.1 시스템 설정

플러그인 설치가 완료되었다면, Jenkins 관리 > 시스템 설정으로 이동합니다. 


3.1.1 SonarQube Runner 설정

먼저 SonarQube Runner 설정 위치로 이동합니다. SonarQube Runner는 별도의 설치 없이, 자동으로 설치를 할 수 있습니다. 아래 그림을 참고해서 아래와 같이 설정합니다. 

  • SonarQube Runner Name : SonarQube Runner 2.4
  • Install automatically : 체크
  • Install from Maven Central Version : SonarQube Runner 2.t


JenkinsSonar02.PNG




3.1.2 SonarQube 설정

SonarQube 설정은 아래와 같습니다. 필자의 가이드에 따라 Jenkins와 같은 서버에 설치했다면 아래와 같이 입력할 수 있습니다. 

  • Name : Sonar
  • Server URL : http://localhost:9000 혹은 아이피:포트
  • SonarQube account login : admin 기본값
  • SonarQube account password : admin 기본값
  • Database login : sonar 기본값
  • Database password : soanr 기본값
  • Version of sonar-maven-plugin : sonar:sonar pom.xml을 수정하지 않았다면

JenkinsSonar03.PNG


3.2 빌드 후 조치

SonarQube를 적용할 프로젝트를 선택하고 좌측의 구성 메뉴를 클릭합니다.

아래로 이동하면 빌드 후 조치 부분에서 SonarQube를 선택해 줍니다.

다음을 참고하여 자신에게 맞는 값들을 입력해 줍니다. 

  • JDK : Java SE Development Kit 8
  • MAVEN_OPS : -Xms256m -Xmx1024m


JenkinsSonar04.PNG

4. 실행확인

4.1 Build Now

Build Now 버튼을 클릭하여, Build를 수행합니다. 

빌드가 성공하면, 하단의 SonarQube 아이콘이 생성되는 것을 확인할 수 있습니다. 


JenkinsSonar06.PNG


4.2 SonarQube 접속

SonarQube에 접속하기 위해 SonarQube 아이콘을 클릭합니다.

아래와 같이 SonarQube 접속 화면을 확인할 수 있습니다. 


JenkinsSonar07.PNG






Who's Tom

profile

저는 2009년 ALM의 세계에 뛰어 들었습니다. 

지금은 ALM, DevOps, 공학 프로세스, 요구공학, 테스트 엔지니어링 등 다양한 영역에 관심이 많습니다.

http://www.curvc.com