티스토리 뷰
SonarLint를 설치했다면 SonarLint에서 제공하는 기본 Ruleset만 사용이 가능하다. 개인적으로 사용하며 조금 더 나은 품질을 추구한다면 이렇게 사용해도 되지만 엔터프라이즈 환경에서는 이정도 Ruleset으로는 어림없다. 조금 더 강력한 Ruleset을 가지고 있는 또 재정의가 가능한 Sonarqube Ruleset과 연동이 되어야 한다. 그래서 기존에 설치해놓은 SonarLint와 Sonarqube를 연동해보자.
필자의 Sonarqube 버전은 6.7이고 연동을 위한 최소한의 버전은 6.7 이다.
SonarLint Sonarqube 연동
![](https://blog.kakaocdn.net/dn/bT8k2o/btqO72VHt8M/FYJvozKguGHl48rxSG0rIK/img.png)
SonarLint 설치가 잘 되었다면 Show View에서 SonarLint Bindings를 볼 수 있다. 창을 열어보자.
![](https://blog.kakaocdn.net/dn/dUwSmd/btqO0gOKz59/i73yOuLck4vk2C0crFJShK/img.png)
SonarLint Bingings가 열리면 위와 같이 Connect to SonarQube/SonarCloud... 이 보인다. 클릭
![](https://blog.kakaocdn.net/dn/c5mw1a/btqO0gVuSt5/2aXRKLvsCBMzirg51DcVhk/img.png)
Connection Type이 나오고 필자는 별도의 서버에 설치해놓은 Sonarqube가 있으므로 Sonarqube를 선택하고 Next!
![](https://blog.kakaocdn.net/dn/b6ZXcW/btqPaVaI3za/6OfdzdLwwBYK0nexmFDEw0/img.png)
이곳에 설치해놓은 Sonarqube의 URL을 입력해주면 된다. 입력하고 Next!
URL을 입력할때는 맨 뒤에 / 가 들어가지 않게한다.
![](https://blog.kakaocdn.net/dn/NSwW1/btqO8X7KS2v/9g6k1cvWkQie3ooiIh0NS1/img.png)
Sonarqube와의 인증방식은 두가지가 있는데 둘중 아무거나 써도 무방하다. 필자는 Token 방식으로 선택하고 Next!
![](https://blog.kakaocdn.net/dn/c9tMSX/btqO0fh7LEf/OsSNrJetanEgSsOounwj21/img.png)
우측의 Generate Token 버튼을 누르면 아까 위에서 설정했던 URL로 바로 연결이 되어 Token 생성 페이지로 이동한다.
![](https://blog.kakaocdn.net/dn/dgq3yU/btqOYveiMRC/KQ9EI204BTKYdn1GQaOKd1/img.png)
Sonarqube의 Token을 발행해주는 page로 이동을 했고 sonarlint라는 값으로 토큰을 생성했다.
![](https://blog.kakaocdn.net/dn/ugVcQ/btqOYvrQuCg/D5dL2YSjrmZeHmCXc5dLUk/img.png)
그럼 초록색으로 Token 값이 생성이 되었고 이 값을 Copy 한다. 이클립스로 돌아와서 이 값을 넣어준다.
![](https://blog.kakaocdn.net/dn/oD9n6/btqO3yA41Me/r6lm2LWe2AUkvQDEyU9VAk/img.png)
Connection Name이 나오고 기본은 URL로 나온다. 변경해도 무관하다.
![](https://blog.kakaocdn.net/dn/bmasPc/btqO8XNssLd/AEg3Ayn0zSNqv7dnvsNV11/img.png)
연동이 모두 끝났다. 매우 간단하다.
끝나면 적용할 프로젝트를 선택을 해야 한다.
![](https://blog.kakaocdn.net/dn/bFtpJc/btqO0fCjx3D/MFoeeKj8TfBaVXzEeSKb30/img.png)
우측의 Add 를 눌러서 프로젝트 목록중에 적용을 할 프로젝트를 선택한다.
![](https://blog.kakaocdn.net/dn/Hond5/btqPaVIzdwf/EbPYGDL3dip8CICJyYlNn0/img.png)
실제 Sonarqube에 분석이 되어 올라가있는 프로젝트를 찾는 과정이다. 이 프로젝트와 매핑을 시키기 위한 과정이다. Sonarqube에 "abcde" 라는 프로젝트로 올라가있으면 이것에 해당하는 로컬 소스를 매핑시켜주는 것이다. 보통은 프로젝트명과 Sonarqube의 프로젝트명이 같기에 똑같이 매핑시켜주면 된다. CTRL+SPACE로 목록조회 가능하다.
![](https://blog.kakaocdn.net/dn/opb93/btqO8XNsX0K/f4PnMWtcTrt7EEM0ULdOH0/img.png)
다 완료가 되었다면 SonarLint Bindings 탭에 위와 같이 표시가 된다.
![](https://blog.kakaocdn.net/dn/mdkhq/btqO8V29DHu/wPu7I8fPVH0CCYidHwFiV0/img.png)
연결된 Sonarqube 우클릭을 하고 Update All Project Bindings를 눌러준다.
![](https://blog.kakaocdn.net/dn/cpuvfY/btqO0TMteA2/bPKQHWZKwQASiMSaNAFSkK/img.png)
위의 리스트에 들어가있는 프로젝트 중 소스 정적분석을 하고 싶은 프로젝트나 클래스를 선택하여 우클릭을 하고 SonarLint > Analyze 를 누르면 분석된 결과를 확인할 수 있다. 여기 에서 어떻게 확인하는지에 대한 자세한 사항을 볼 수 있다.
연동 오류 발생시
![](https://blog.kakaocdn.net/dn/XNfzz/btqO72hbXoz/ZwUwsCVXtbn0mZED09w4aK/img.png)
Analyze를 하면 위와 같은 오류가 발생할수도 있다. 이럴때는 문제되는 부분의 Sonarqube Server의 plugin을 upgrade해주면 된다. (재시작 필요)
끝!
'CI,CD > Sonarqube' 카테고리의 다른 글
AWS ec2에 sonarqube 설치하기 (0) | 2021.08.11 |
---|---|
Sonarqube Custom Ruleset 등록 및 특정 프로젝트에만 적용하기 (0) | 2020.12.08 |
The Project Analysis is in progress 나오며 Ruleset 반영이 되지 않을때 (0) | 2020.12.01 |
Sonarqube Custom Ruleset 정의의 기준 (with 행자부 보안취약점 대응, OWASP top 10 2020) (1) | 2020.11.26 |
Sonarqube Custom Rule 6.7 to 8.5 migration (0) | 2020.11.20 |