문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
java:sonarqube [2018/10/04 14:31] kwon37xi [Quality Gates] |
java:sonarqube [2022/10/19 10:08] (현재) kwon37xi |
||
---|---|---|---|
줄 2: | 줄 2: | ||
* http:// | * http:// | ||
* 코드 품질 관리 툴 | * 코드 품질 관리 툴 | ||
+ | * [[programming: | ||
* [[gradle: | * [[gradle: | ||
===== SonarQube Scanner for Jenkins ===== | ===== SonarQube Scanner for Jenkins ===== | ||
* [[ci: | * [[ci: | ||
- | * Maven이나 Gradle Plugin이 아닌 Jenkins 혹은 명령행 Scanner 사용시 [[https:// | + | * Maven이나 Gradle Plugin이 아닌 Jenkins 혹은 명령행 Scanner 사용시 [[https:// |
* 따라서 위 프라퍼티들을 올바로 설정할 자신이 없으면 그냥 [[gradle: | * 따라서 위 프라퍼티들을 올바로 설정할 자신이 없으면 그냥 [[gradle: | ||
* [[https:// | * [[https:// | ||
+ | |||
+ | ===== False Positive ===== | ||
+ | * [[https:// | ||
+ | * 해당 규칙이 false positive 인 경우 '' | ||
+ | * '' | ||
+ | |||
+ | <note warning> | ||
+ | SonarQube 의 코드 퀄리티를 만족시키기 위해서 우리 사정상 어쩔 수 없거나 SonarQube 의 경고 자체가 잘못된 경우가 있는데, 억지로 이게 맞추려고 코드를 꼬아서 만들거나 해서는 안 된다. 이게 오히려 버그를 만든다. | ||
+ | |||
+ | 이럴때는 즉각 팀에 공유하고, | ||
+ | </ | ||
+ | |||
+ | ==== @SuppressWarnings(" | ||
+ | * '' | ||
+ | ==== NOSONAR | ||
+ | * 규칙 위반을 고치는게 불가능할 경우 해당 위반의 줄 맨 끝에 '' | ||
+ | |||
+ | ==== @SuppressWarnings(" | ||
+ | * '' | ||
===== 참고 자료 ===== | ===== 참고 자료 ===== | ||
줄 35: | 줄 55: | ||
* 알림은 자기 계정의 **My Account -> Notifications**에서 프로젝트 단위, 혹은 전체 프로젝트를 지정할 수 있다. | * 알림은 자기 계정의 **My Account -> Notifications**에서 프로젝트 단위, 혹은 전체 프로젝트를 지정할 수 있다. | ||
+ | ==== sonar.qualitygate.wait=true ==== | ||
+ | * [[https:// | ||
+ | * sonarqube 8.x 에서는 client 에서 '' | ||
===== Jenkins Pipeline에서 Quality Gate 응답 대기 ===== | ===== Jenkins Pipeline에서 Quality Gate 응답 대기 ===== | ||
+ | * sonarqube 8.x 에서는 불필요. sonarqube gradle/ | ||
+ | * [[https:// | ||
+ | * Jenkins 설정에서 sonarqube URL / 인증등을 설정해주고서 | ||
+ | * [[https:// | ||
* Quality Gate 응답을 기다리고 실패이면 UNSTABLE로 변경< | * Quality Gate 응답을 기다리고 실패이면 UNSTABLE로 변경< | ||
timeout(time: | timeout(time: | ||
줄 46: | 줄 73: | ||
</ | </ | ||
* Declarative Pipeline 에서 아래 사용시 무조건 FAILURE로 바꿔버림< | * Declarative Pipeline 에서 아래 사용시 무조건 FAILURE로 바꿔버림< | ||
- | waitForQualityGate abortPipeline: | + | stage(" |
+ | steps { | ||
+ | timeout(time: | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | } | ||
</ | </ | ||
+ | * Sonarqube의 [[https:// | ||
===== Installing Sonar ===== | ===== Installing Sonar ===== | ||
* [[http:// | * [[http:// | ||
줄 82: | 줄 117: | ||
</ | </ | ||
* 위와 같은 오류 발생시에는 SonarQube **Settings -> General Settings -> Java -> FindBugs**에 들어가 FindBug에서 timeout을 늘려줘야한다. | * 위와 같은 오류 발생시에는 SonarQube **Settings -> General Settings -> Java -> FindBugs**에 들어가 FindBug에서 timeout을 늘려줘야한다. | ||
+ | |||
+ | ===== Analysis Parameter ===== | ||
+ | * https:// | ||
+ | |||
+ | ==== duplication exclude ==== | ||
+ | * '' | ||
+ | |||
===== 참조 ===== | ===== 참조 ===== | ||
줄 87: | 줄 129: | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// |