- sonarqube-7.2.1
- sonar-scanner-cli-3.0.3.778-windows
1. 플러그인 설치
- Gradle plugin
- SonarQube Scanner for Jenkins
2. 설정 변경
3. 아이템 추가
[단일 프로젝트]
sonar.login=admin
sonar.password=admin
sonar.host.url=http://localhost:9000
sonar.sources=src/main/java
sonar.tests=src/test/java
sonar.java.binaries=build/classes
sonar.projectVersion=1.0
sonar.sourceEncoding=UTF-8
sonar.projectKey=sonarqube
sonar.java.libraries=C:/lombok-1.18.8.jar
sonar.java.source=1.8
=======================================================
[복합 프로젝트 - Module이 여러개(Intellij 기준)]
sonar.login=admin
sonar.password=admin
sonar.host.url=http://localhost:9000
sonar.sources=[PROJECT_NAME]/src/main/java
sonar.tests=[PROJECT_NAME]/src/test/java
sonar.java.binaries=[PROJECT_NAME]/build/classes
sonar.projectVersion=1.0
sonar.sourceEncoding=UTF-8
sonar.projectKey=[PROJECT_NAME]
sonar.java.source=1.8
※ [PROJECT_NAME]/out/production/classes 수동 추가. 빌드 스크립트에 추후 수정
빌드 중 에러 -> [ROOT_PROJECT_NAME]/target/surefire-reports 생성
=========================================================
// SOURCE
sonar.sources=src/main/java
sonar.inclusions=src/main/java
// TEST
sonar.tests=src/test/java
sonar.test.inclusions=src/test/java
// BINARY-SOURCE
sonar.java.binaries=build/classes
// LIBRARY
sonar.java.libraries=C:/Users/[WINDOW계정]/.m2/**/*.jar
sonar.java.libraries=C:/[MAVEN 또는 GRADLE JAR파일]/lombok-1.18.8.jar
// JACOCO
sonar.java.coveragePlugin=jacoco
sonar.jacoco.reportPaths=build/jacoco/jacoco-ut.exec
=========================================================
- sonar.coverage.exclusions=**/*.java // 코드 커버리시 제외
4. Sonarqube 플러그인 업데이트(필수)
- Sonarjava[5.6 (build 15032)] 설치
- Java로 검색 -> 모두 설치
: lombok 등으로 적용된 부분이 code smell에 걸리는 경우가 있음.
ex)
@NoArgsConstructor(access = PRIVATE)
public final class TransformerUtil {
public static OutDto transform(ApiVo vo) {
return Optional.ofNullable(vo)
.map(item -> OutDto.builder()
.build()
).orElse(null);
}
public static Dto transform(Vo vo) {
return Optional.ofNullable(vo)
.map(item -> Dto.builder()
.build()
).orElse(null);
}
}