CI CD InfraStructure/Docker

[Docker] SonarQube 인스톨 및 Maven 빌드

유혁스쿨 2023. 7. 12. 10:25
728x90
반응형

Sonarqube Install

 

https://hub.docker.com/_/sonarqube

 

sonarqube - Official Image | Docker Hub

Quick reference Supported tags and respective Dockerfile links 9.9.1-community, 9.9-community, 9-community, lts, lts-community 9.9.1-developer, 9.9-developer, 9-developer, lts-developer 9.9.1-enterprise, 9.9-enterprise, 9-enterprise, lts-enterprise 9.9.1-d

hub.docker.com

 

 

Windows환경이나 Intel칩셋을 사용하는 Mac환경의 이용자

> docker pull sonarqube
$ docker run --rm -p 9000:9000 --name sonarqube sonarqube

Apple Silicon, ARM, M1칩셋을 사용하는 Mac환경의 이용자

> docker pull edowon0623/sonarqube:arm
$ docker run --rm -p 9000:9000 --name sonarqube edowon0623/sonarqube:arm

 

 

설치 후 http://localhost:9000 접속


Maven Project 반영

 

1. Maven Project의 pom.xml 에 Plugin Version 설정 변경

https://docs.sonarsource.com/sonarqube/latest/analyzing-source-code/scanners/sonarscanner-for-maven/

사이트에 접속한 뒤 How to fix version of Maven plugin에서 <plugin> 항목만 복사한 뒤 Jenkins로 빌드할 메이븐 프로젝트의 pom.xml에서 <plugins> 태그 하위에 추가한다.

 

https://mvnrepository.com/artifact/org.sonarsource.scanner.maven/sonar-maven-plugin

현재 사용할 수 있는 Sonar Scanner의 최신버전은 3.9.1.2184이다.

해당 최신버전으로 수정한다.

 

 

2. SonarQube Token 생성

http://localhost:9000 접속한 뒤 아이디와 패스워드를 입력한다.

ID/PW : admin/admin

최초 로그인 하게되면 admin계정의 패스워드를 변경하라고 한다. 

원하는 패스워드로 변경해주자. (필자는 admin123으로 설정함.)

 

로그인 후 헤더의 우측 상단의 A배너를 클릭하고 MyAccount를 선택한다.

이동된 페이지의 우측 상단 네비게이션의 Security를 선택한다.

 

아래와 같이 토큰정보를 입력한 후 Generate버튼을 클릭하여 생성한다.

생성된 토큰의 값은 토큰정보 입력란과 생성 이후 출력되는 하단의 그리드 사이 영역에 [Copy] 버튼과 함께 바로 우측에 출력된다.

토큰 정보는 현재 생성되었을 당시에만 확인할 수 있기 때문에 잘 복사해서 저장해둔다.

(만들어진 토크는 Revoke후 새로 생성해도 상관은 없으나 한번 만들어진 토큰의 정보는 확인할 수 없다.)

 

 

3. Maven Build 

mvn명령어를 통해 sonar프로젝트를 빌드한다.

주의할 점은 빌드 할 프로젝트 디렉토리로 이동한 후에 해당 명령어를 입력헤야한다.

빌드 할 프로젝트 디렉토리> mvn sonar:sonar -Dsonar.host.url=http://localhost:9000 -Dsonar.login=토큰값

SonarQube 사이트 상단의 Projects에 들어간다.

조금 전 빌드한 프로젝트를 확인할 수 있다.

 

4. BadCode 조사

아래와 같이 System.out.println 코드를 추가한다. (시스템의 리소스를 낭비하는 요인 중 하나이다.)

 

빌드 전컴파일을 확인해본다.

> mvn clean compile package -DscipTests=true

컴파일 오류는 발생하지 않는다.

 

sonar빌드로 maven빌드를 실행해본다.

> mvn sonar:sonar -Dsonar.host.url=http://localhost:9000 -Dsonar.login=토큰값

 

Failed이 발생한다.

 

프로젝트명을 누른 후 이동하는 페이지에서 좌측 사이드의 Failed 하단에 Maintainability Rating on New Code를 선택한다.

 

해당 버튼을 누르면 이슈 상세 내역을 확인할 수 있다.

 

회사마다 룰과 정책이 다르기 때문에 수치를 넘어가지 않는 범위까지 허용이된다 는 룰이 존재할 수 있다.

 

728x90
반응형

'CI CD InfraStructure > Docker' 카테고리의 다른 글

Docker 컨테이너로 Jenkins 설치 및 실행  (0) 2023.07.07