반응형

들어가며

Sonarqube란?

  • Sonarqube는 check style, coverage, test 등을 분석해주는 코드 도구
  • 보안 취약 코드나 악취 코드도 분석해줌

docker로 설치

docker-compose.yaml

version: "3.3"
services:
  sonarqube:
    container_name: sonarqube
    image: sonarqube # arm일 경우 - image:hub4rpi64/sonarqube:8.3.1.34397
    environment:
      TZ: Asia/Seoul
    ports:
      - "9000:9000"

리눅스에 설치

자바 설치

unzip 설치

  • 소나큐브 압축파일 해제시 필요
sudo apt-get install unzip

소나큐브 설치

mkdir -p ~/app \
&& cd ~/app \
&& wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.2.0.32929.zip \
&& unzip sonarqube-*.zip \
&& rm sonarqube-*.zip \
&& ln -s -Tfs sonarqube-* sonarqube

환경변수 등록

vi ~/.profile
export SONARQUBE_HOME=/home/ubuntu/app/sonarqube

export PATH=$PATH:$SONARQUBE_HOME/bin/linux-x86-64
source ~/.profile

소나큐브 설정

  • 별도 설정 없이도 작동 가능하므로 해당 단계는 패스 가능
vi $SONARQUBE_HOME/conf/sonar.properties
sonar.web.host=0.0.0.0
sonar.web.port=9000

소나큐브 실행

  • background 실행
    sonar.sh start
    
  • foreground 실행
    sonar.sh console
    
  • 종료
    sonar.sh stop
    

소나큐브 접속

  • 별도 설정 없으면 기본 포트로 9000을 사용
  • http://sonarqube.example.com:9000

로그인

  • ID : admin
  • PW : admin

한국어 플러그인 설치

  • Administration > Marketplace
  • 아래 플러그인 검색창에 korean pack 입력 후 install 버튼 눌러 설치
  • 설치가 끝나면 상단에 뜨는 Restart server 버튼 클릭해서 소나큐브 재시작

신규 프로젝트 생성

  • projects > create new project
  • project key : EXAMPLE-PROJECT
  • display name : EXAMPLE-PROJECT
  • set up 버튼 클릭
  • Generate a token : EXAMPLE-PROJECT
  • 생성 후 나타난 토큰값 복사 ex) c33b432f7c835c5beedc0f5847a7adcff01cdd7a
  • 아래 내용들 확인
    mvn sonar:sonar \
      -Dsonar.projectKey=EXAMPLE-PROJECT \
      -Dsonar.host.url=http://sonarqube.example.com:9000 \
      -Dsonar.login=c33b432f7c835c5beedc0f5847a7adcff01cdd7a
    

신규 프로젝트 비공개로 설정

  • 해당 프로젝트 > 우상단에 Project Settings > 권한
  • 상단에 비공개 체크
  • 프로젝트 목록 페이지에서 해당 프로젝트 우상단에 비공개 태그가 추가됐는지 확인

maven 프로젝트 설정

  • pom.xml
<profiles>
    <profile>
        <id>ci</id>
        <properties>
            <sonar.projectKey>EXAMPLE-PROJECT</sonar.projectKey>
            <sonar.host.url>http://sonarqube.example.com:9000</sonar.host.url>
            <sonar.login>c33b432f7c835c5beedc0f5847a7adcff01cdd7a</sonar.login>
        </properties>
    </profile>
</profiles>

소나큐브에 분석 요청

  • 아래 명령 수행 후 소나큐브 웹페이지에서 분석 결과 확인
  • 아래 명령을 완료하고 웹페이지에 바로 반영 결과가 뜨는게 아니므로 시간을 두고 확인
mvn sonar:sonar -P ci
반응형

'Development > Sonarqube' 카테고리의 다른 글

[Sonarqube] Rest API  (0) 2020.12.30
[Sonarqube] 자바스크립트 프로젝트 연동  (0) 2020.12.30
[Sonarqube] 자바 프로젝트 연동  (0) 2020.12.30

+ Recent posts