지난 소나 큐브 SonarQube 커스텀 룰셋 적용에 이어 실제로 룰셋을 생성하여 소스를 검수해 보도록 하겠습니다.
1. Quality Profiles복사
2. Rule Activate - Deactivate
3. 정규식 템플릿 생성
4. 정규식 입력 - Activate
5. 프로젝트 Re-Scan
# Quality Profiles 복사
Sonar way > Copy 를 통해 프로파일을 복사합니다. 저는 "Custom Ruleset"으로 복사했습니다. 이미 생성하였으므로 제 프로필 상에는 보이는군요.
# Rule Activate - Deactivate
선택이 필요한 부분인데, Sonar way에서 COPY 된 기본 Rule들을 모두 사용할 것이냐 하는 내용입니다. 어차피 Java 기본 Rule 들이기 때문에 그냥 두셔도 상관없고, 불필요한 Rule 들은 Deactivate 하셔도 됩니다.
# 정규식 Template 생성
Template > Show Templates Only > Regexp Multiline 에서 정규식 템플릿을 생성합니다. Create 를 선택합니다.
Name을 입력하면 Key 값는 자동으로 Name과 동일하게 입력됩니다. 결함이 발견되었을때의 Description 을 입력하고, Format에 적용하고자 하는 정규식을 입력합니다. 제가 적용한 룰은
SELECT 문에서 * (Asterisk) 사용 지양
입니다. 정규식 표현은
(select|SELECT)\s+\*\s+(from|FROM)
참고로 정규식 표현에 대한 테스트는 https://regex101.com/ 에서 수행했습니다.
# 정규식 입력 - Activate
새로운 Ruleset이 생성됩니다.
저는 위에서 복사된 모든 Rule 을 DeActivate 해버려서, Quality Profiles 을 확인해보면 지금 생성한 Rules 하나만 확인됩니다. Custom Ruleset을 Default로 바꿔줍니다.
Sonar에 탐지될 수 있도록 위 Custom Ruleset에 위배되는 결함 코드를 입력합니다.
# 프로젝트 ReScan
다시 mvn 빌드를 실행하면
새로 적용된 Rule에 따라 SELECT 문 내의 * (Asterisk) 결함이 탐지됩니다.
'초보 개발자 > QA' 카테고리의 다른 글
[QA] #3. 소나큐브 결과 출력하기 (Json) (0) | 2021.11.14 |
---|---|
[QA] #2. 소나큐브 SonarQube를 이용한 프로젝트 정적 분석 (0) | 2021.10.21 |
[QA] #1. 소나큐브 SonarQube 설치하기 (0) | 2021.07.22 |
[QA] #4. 소나큐브 SonarQube 커스텀 룰셋 적용 (0) | 2020.12.30 |
댓글