# ============================================================================= # SonarQube 연동 설정 (sonar-project.properties) # 각 프로젝트 루트에 복사 후 projectKey, sources 등 수정 # ============================================================================= # ── 프로젝트 기본 정보 ──────────────────────────────────────────────────────── sonar.projectKey=guardia-itsm sonar.projectName=GUARDiA ITSM sonar.projectVersion=1.0.0 # ── 소스 경로 ──────────────────────────────────────────────────────────────── # Java Maven/Gradle: src/main/java # Node.js: src sonar.sources=src/main/java sonar.tests=src/test/java # ── 인코딩 ─────────────────────────────────────────────────────────────────── sonar.sourceEncoding=UTF-8 # ── Java 설정 ──────────────────────────────────────────────────────────────── sonar.java.source=17 sonar.java.target=17 # 바이트코드 경로 (컴파일된 클래스) sonar.java.binaries=target/classes,build/classes sonar.java.libraries=target/dependency/*.jar,build/libs/dependency/*.jar # ── 테스트 커버리지 ─────────────────────────────────────────────────────────── # JaCoCo 리포트 경로 sonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml,build/reports/jacoco/test/jacocoTestReport.xml # Surefire 테스트 결과 sonar.junit.reportPaths=target/surefire-reports,build/test-results/test # ── 제외 경로 ──────────────────────────────────────────────────────────────── sonar.exclusions=\ **/generated/**,\ **/*Test.java,\ **/*Tests.java,\ **/test/**,\ **/config/**,\ **/*Config.java,\ **/Application.java,\ **/dto/**,\ **/entity/**,\ **/model/** sonar.test.exclusions=\ **/test/** sonar.coverage.exclusions=\ **/dto/**,\ **/entity/**,\ **/model/**,\ **/config/**,\ **/*Application.java # ── 중복 코드 검사 제외 ──────────────────────────────────────────────────────── sonar.cpd.exclusions=\ **/dto/**,\ **/entity/** # ── 품질 게이트 설정 (SonarQube 서버에서 관리) ──────────────────────────────── # 아래 항목은 참고용 — 실제 Quality Gate는 SonarQube UI에서 설정 # 신규 코드 기준: # - 커버리지: 80% 이상 # - 중복 코드: 3% 이하 # - 보안 취약점: 0개 # - 버그: 0개 (Critical/Blocker) # - 코드 냄새: A등급 # ── Node.js 전용 설정 (package.json 프로젝트) ────────────────────────────────── # sonar.sources=src # sonar.tests=src # sonar.test.inclusions=**/*.test.js,**/*.spec.js,**/*.test.ts,**/*.spec.ts # sonar.javascript.lcov.reportPaths=coverage/lcov.info # sonar.typescript.lcov.reportPaths=coverage/lcov.info # ── SonarQube 서버 연결 ──────────────────────────────────────────────────────── # Jenkins의 withSonarQubeEnv()를 사용할 경우 자동 주입되므로 아래 설정 불필요 # sonar.host.url=http://sonar.agency.go.kr:9000 # sonar.login= # ── 브랜치 분석 (Developer Edition 이상) ───────────────────────────────────── # sonar.branch.name=${env.BRANCH_NAME} # sonar.branch.target=main