From 68df0e15f79cfc09d457c9e4ddbf2f8b8a618462 Mon Sep 17 00:00:00 2001 From: jisu Date: Mon, 25 Dec 2023 01:21:39 +0900 Subject: [PATCH 01/13] chore: add jacoco setting --- build.gradle | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/build.gradle b/build.gradle index 214d4bee..6d7a6ac4 100644 --- a/build.gradle +++ b/build.gradle @@ -2,6 +2,7 @@ plugins { id 'java' id 'org.springframework.boot' version '2.7.9' id 'io.spring.dependency-management' version '1.0.15.RELEASE' + id 'jacoco' } group = 'mocacong' @@ -18,6 +19,10 @@ configurations { } } +jacoco { + toolVersion = '0.8.8' +} + repositories { mavenCentral() } @@ -47,4 +52,78 @@ dependencies { test { useJUnitPlatform() + finalizedBy 'jacocoTestReport' +} + +jacocoTestReport { + dependsOn test + reports{ + html.required.set(true) + xml.required.set(true) + csv.required.set(true) + html.destination file("$buildDir/reports/jacoco/index.html") + xml.destination file("$buildDir/reports/jacoco/index.xml") + csv.destination file("$buildDir/reports/jacoco/index.csv") + } + + def Qdomains = [] + for (qPattern in "**/QA" .. "**/QZ") { + Qdomains.add(qPattern + "*") + } + + afterEvaluate { + classDirectories.setFrom( + files(classDirectories.files.collect { + fileTree(dir: it, excludes: [ + // 측정 안하고 싶은 패턴 + "**/*Application*", + "**/*Controller*", + "**/config/*", + "**/dto/*", + "**/exception/*", + "**/security/*", + "**/support/*" + // Querydsl 관련 제거 + ] + Qdomains) + }) + ) + } + finalizedBy 'jacocoTestCoverageVerification' +} + +jacocoTestCoverageVerification { + def Qdomains = [] + for (qPattern in '*.QA'..'*.QZ') { // qPattern = '*.QA', '*.QB', ... '*.QZ' + Qdomains.add(qPattern + '*') + } + + violationRules { + rule { + failOnViolation = false + enabled = true + element = 'CLASS' + + limit { + counter = 'LINE' + value = 'COVEREDRATIO' + minimum = 0.70 + } + + limit { + counter = 'BRANCH' + value = 'COVEREDRATIO' + minimum = 0.70 + } + + excludes = [ + "**.*Application*", + "**.*Controller*", + "**.config.*", + "**.dto.*", + "**.exception.*", + "**.security.*", + "**.support.*" + ] + Qdomains + } + } } From 3f5c09ce556d36ebea51e83aafa09bf1ea8b3ae2 Mon Sep 17 00:00:00 2001 From: jisu Date: Mon, 25 Dec 2023 01:48:51 +0900 Subject: [PATCH 02/13] chore: add sonar cloud setting --- build.gradle | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/build.gradle b/build.gradle index 6d7a6ac4..53b70f67 100644 --- a/build.gradle +++ b/build.gradle @@ -3,6 +3,7 @@ plugins { id 'org.springframework.boot' version '2.7.9' id 'io.spring.dependency-management' version '1.0.15.RELEASE' id 'jacoco' + id 'org.sonarqube' version '4.2.1.3168' } group = 'mocacong' @@ -23,6 +24,22 @@ jacoco { toolVersion = '0.8.8' } +sonar { + properties { + property 'sonar.host.url', 'https://sonarcloud.io' + property 'sonar.organization', 'mocacong' + property 'sonar.projectKey', 'mocacong_Mocacong-Backend' + property 'sonar.coverage.jacoco.xmlReportPaths', 'build/reports/jacoco/index.xml' + property 'sonar.sources', 'src' + property 'sonar.language', 'java' + property 'sonar.sourceEncoding', 'UTF-8' + property 'sonar.exclusions', '**/*Application*.java, **/*Controller*.java, **/config/**, **/dto/**, ' + + '**/exception/**, **/security/**, **/support/**' + property 'sonar.test.inclusions', '**/*Test*.java' + property 'sonar.java.coveragePlugin', 'jacoco' + } +} + repositories { mavenCentral() } From f2abe4fac3937a98ecec117fa958d9091fbffcf8 Mon Sep 17 00:00:00 2001 From: jisu Date: Mon, 25 Dec 2023 02:08:34 +0900 Subject: [PATCH 03/13] chore: change sonar cloud setting --- build.gradle | 118 ++++++++++++++++++++++++--------------------------- 1 file changed, 56 insertions(+), 62 deletions(-) diff --git a/build.gradle b/build.gradle index 53b70f67..d6e64f58 100644 --- a/build.gradle +++ b/build.gradle @@ -24,6 +24,26 @@ jacoco { toolVersion = '0.8.8' } +test { + useJUnitPlatform() + finalizedBy 'jacocoTestReport' +} + +def Qdomains = [] +for (qPattern in "**/QA" .. "**/QZ") { + Qdomains.add(qPattern + "*") +} + +def jacocoExcludePatterns = [ + "**/*Application*", + "**/*Controller*", + "**/config/*", + "**/dto/*", + "**/exception/*", + "**/security/*", + "**/support/*" +] + sonar { properties { property 'sonar.host.url', 'https://sonarcloud.io' @@ -33,45 +53,12 @@ sonar { property 'sonar.sources', 'src' property 'sonar.language', 'java' property 'sonar.sourceEncoding', 'UTF-8' - property 'sonar.exclusions', '**/*Application*.java, **/*Controller*.java, **/config/**, **/dto/**, ' + - '**/exception/**, **/security/**, **/support/**' + property 'sonar.exclusions', jacocoExcludePatterns.join(',') property 'sonar.test.inclusions', '**/*Test*.java' property 'sonar.java.coveragePlugin', 'jacoco' } } -repositories { - mavenCentral() -} - -dependencies { - implementation 'org.springframework.boot:spring-boot-starter-data-jpa' - implementation 'org.springframework.boot:spring-boot-starter-web' - implementation 'org.springframework.boot:spring-boot-starter-validation' - implementation 'org.springframework.boot:spring-boot-starter-aop' - implementation 'org.springframework.boot:spring-boot-starter-mail' - implementation 'org.springframework.boot:spring-boot-starter-data-redis' - implementation 'com.amazonaws:aws-java-sdk-ses:1.12.429' - implementation 'io.jsonwebtoken:jjwt:0.9.1' - implementation 'org.springdoc:springdoc-openapi-ui:1.6.15' - implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE' - implementation 'com.slack.api:slack-api-client:1.29.0' - implementation platform("org.springframework.cloud:spring-cloud-dependencies:2021.0.5") - implementation "org.springframework.cloud:spring-cloud-starter-openfeign" - compileOnly 'org.projectlombok:lombok' - runtimeOnly 'com.h2database:h2' - runtimeOnly 'com.mysql:mysql-connector-j' - annotationProcessor 'org.projectlombok:lombok' - testImplementation 'org.springframework.boot:spring-boot-starter-test' - testImplementation 'io.rest-assured:rest-assured' - testImplementation 'it.ozimov:embedded-redis:0.7.2' -} - -test { - useJUnitPlatform() - finalizedBy 'jacocoTestReport' -} - jacocoTestReport { dependsOn test reports{ @@ -83,25 +70,10 @@ jacocoTestReport { csv.destination file("$buildDir/reports/jacoco/index.csv") } - def Qdomains = [] - for (qPattern in "**/QA" .. "**/QZ") { - Qdomains.add(qPattern + "*") - } - afterEvaluate { classDirectories.setFrom( files(classDirectories.files.collect { - fileTree(dir: it, excludes: [ - // 측정 안하고 싶은 패턴 - "**/*Application*", - "**/*Controller*", - "**/config/*", - "**/dto/*", - "**/exception/*", - "**/security/*", - "**/support/*" - // Querydsl 관련 제거 - ] + Qdomains) + fileTree(dir: it, excludes: jacocoExcludePatterns + Qdomains) }) ) } @@ -109,11 +81,6 @@ jacocoTestReport { } jacocoTestCoverageVerification { - def Qdomains = [] - for (qPattern in '*.QA'..'*.QZ') { // qPattern = '*.QA', '*.QB', ... '*.QZ' - Qdomains.add(qPattern + '*') - } - violationRules { rule { failOnViolation = false @@ -133,14 +100,41 @@ jacocoTestCoverageVerification { } excludes = [ - "**.*Application*", - "**.*Controller*", - "**.config.*", - "**.dto.*", - "**.exception.*", - "**.security.*", - "**.support.*" + '**.*Application*', + '**.*Controller*', + '**.config.*', + '**.dto.*', + '**.exception.*', + '**.security.*', + '**.support.*' ] + Qdomains } } } + +repositories { + mavenCentral() +} + +dependencies { + implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'org.springframework.boot:spring-boot-starter-validation' + implementation 'org.springframework.boot:spring-boot-starter-aop' + implementation 'org.springframework.boot:spring-boot-starter-mail' + implementation 'org.springframework.boot:spring-boot-starter-data-redis' + implementation 'com.amazonaws:aws-java-sdk-ses:1.12.429' + implementation 'io.jsonwebtoken:jjwt:0.9.1' + implementation 'org.springdoc:springdoc-openapi-ui:1.6.15' + implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE' + implementation 'com.slack.api:slack-api-client:1.29.0' + implementation platform("org.springframework.cloud:spring-cloud-dependencies:2021.0.5") + implementation "org.springframework.cloud:spring-cloud-starter-openfeign" + compileOnly 'org.projectlombok:lombok' + runtimeOnly 'com.h2database:h2' + runtimeOnly 'com.mysql:mysql-connector-j' + annotationProcessor 'org.projectlombok:lombok' + testImplementation 'org.springframework.boot:spring-boot-starter-test' + testImplementation 'io.rest-assured:rest-assured' + testImplementation 'it.ozimov:embedded-redis:0.7.2' +} From 3f05104aaa8bc15b753ebc791ad955ea99602f6d Mon Sep 17 00:00:00 2001 From: jisu Date: Mon, 25 Dec 2023 02:21:56 +0900 Subject: [PATCH 04/13] chore: integrate gradle build and SonarCloud analysis --- .github/workflows/ci-backend.yml | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-backend.yml b/.github/workflows/ci-backend.yml index 1b715124..432e3103 100644 --- a/.github/workflows/ci-backend.yml +++ b/.github/workflows/ci-backend.yml @@ -11,7 +11,8 @@ on: - develop jobs: - build: + test: + name: Code Quality Check runs-on: ubuntu-latest steps: @@ -26,5 +27,28 @@ jobs: - name: Grant execute permisson for gradlew run: chmod +x gradlew - - name: Build with Gradle - run: ./gradlew clean build + - name: Cache SonarCloud packages + uses: actions/cache@v3 + with: + path: ~/.sonar/cache + key: ${{ runner.os }}-sonar + restore-keys: ${{ runner.os }}-sonar + + - name: Setup Gradle + uses: gradle/gradle-build-action@v2 + with: + arguments: check + cache-read-only: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/develop' }} + + - name: Cache Gradle packages + uses: actions/cache@v3 + with: + path: ~/.gradle/caches + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} + restore-keys: ${{ runner.os }}-gradle + + - name: Build and analyze + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + run: ./gradlew sonar --info --stacktrace From 85eb5b845b9dce29be6cfc59b361cd2b8a677c34 Mon Sep 17 00:00:00 2001 From: jisu Date: Mon, 25 Dec 2023 02:45:22 +0900 Subject: [PATCH 05/13] chore: fix sonar exclusions --- build.gradle | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/build.gradle b/build.gradle index d6e64f58..a564e397 100644 --- a/build.gradle +++ b/build.gradle @@ -34,16 +34,6 @@ for (qPattern in "**/QA" .. "**/QZ") { Qdomains.add(qPattern + "*") } -def jacocoExcludePatterns = [ - "**/*Application*", - "**/*Controller*", - "**/config/*", - "**/dto/*", - "**/exception/*", - "**/security/*", - "**/support/*" -] - sonar { properties { property 'sonar.host.url', 'https://sonarcloud.io' @@ -53,7 +43,8 @@ sonar { property 'sonar.sources', 'src' property 'sonar.language', 'java' property 'sonar.sourceEncoding', 'UTF-8' - property 'sonar.exclusions', jacocoExcludePatterns.join(',') + property 'sonar.exclusions', '**/*Application*.java, **/*Controller*.java ,**/config/**, **/dto/**, ' + + '**/exception/**, **/security/**, **/support/**, **/Q*.java' property 'sonar.test.inclusions', '**/*Test*.java' property 'sonar.java.coveragePlugin', 'jacoco' } @@ -73,7 +64,16 @@ jacocoTestReport { afterEvaluate { classDirectories.setFrom( files(classDirectories.files.collect { - fileTree(dir: it, excludes: jacocoExcludePatterns + Qdomains) + fileTree(dir: it, excludes: + [ + "**/*Application*", + "**/*Controller*", + "**/config/*", + "**/dto/*", + "**/exception/*", + "**/security/*", + "**/support/*" + ]+ Qdomains) }) ) } From 8028a573b0af8b6076dbb0f0445d501d7546bb2f Mon Sep 17 00:00:00 2001 From: jisu Date: Mon, 25 Dec 2023 03:15:33 +0900 Subject: [PATCH 06/13] chore: add steps for upload test coverage --- .github/workflows/ci-backend.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.github/workflows/ci-backend.yml b/.github/workflows/ci-backend.yml index 432e3103..c2bae926 100644 --- a/.github/workflows/ci-backend.yml +++ b/.github/workflows/ci-backend.yml @@ -10,6 +10,9 @@ on: - main - develop +env: + COVERAGE_PERCENT: 70 + jobs: test: name: Code Quality Check @@ -52,3 +55,20 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} run: ./gradlew sonar --info --stacktrace + + - name: Upload Test Result + uses: EnricoMi/publish-unit-test-result-action@v2 + if: $({ always() }) + with: + files: build/test-results/**/*.xml + + - name: Upload Test Coverage Result to PR + id: jacoco + uses: madrapps/jacoco-report@v1.3 + with: + paths: ${{ github.workspace }}/build/reports/jacoco/testCodeCoverageReport/testCodeCoverageReport.xml + token: ${{ secrets.GITHUB_TOKEN }} + min-coverage-overall: ${{ env.COVERAGE_PERCENT }} + debug-mode: false + title: Code Coverage + update-comment: true From c190dad6a08572a820cfebbabf66ce3c0d19376c Mon Sep 17 00:00:00 2001 From: jisu Date: Mon, 25 Dec 2023 03:18:15 +0900 Subject: [PATCH 07/13] fix: fix always() in ci scripts --- .github/workflows/ci-backend.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-backend.yml b/.github/workflows/ci-backend.yml index c2bae926..48db2fa2 100644 --- a/.github/workflows/ci-backend.yml +++ b/.github/workflows/ci-backend.yml @@ -58,7 +58,7 @@ jobs: - name: Upload Test Result uses: EnricoMi/publish-unit-test-result-action@v2 - if: $({ always() }) + if: ${{ always() }} with: files: build/test-results/**/*.xml From cce4540024db16ad81305c8911bbb8f33f8c3c2e Mon Sep 17 00:00:00 2001 From: jisu Date: Mon, 25 Dec 2023 03:24:34 +0900 Subject: [PATCH 08/13] fix: rollback code --- .github/workflows/ci-backend.yml | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/.github/workflows/ci-backend.yml b/.github/workflows/ci-backend.yml index 48db2fa2..432e3103 100644 --- a/.github/workflows/ci-backend.yml +++ b/.github/workflows/ci-backend.yml @@ -10,9 +10,6 @@ on: - main - develop -env: - COVERAGE_PERCENT: 70 - jobs: test: name: Code Quality Check @@ -55,20 +52,3 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} run: ./gradlew sonar --info --stacktrace - - - name: Upload Test Result - uses: EnricoMi/publish-unit-test-result-action@v2 - if: ${{ always() }} - with: - files: build/test-results/**/*.xml - - - name: Upload Test Coverage Result to PR - id: jacoco - uses: madrapps/jacoco-report@v1.3 - with: - paths: ${{ github.workspace }}/build/reports/jacoco/testCodeCoverageReport/testCodeCoverageReport.xml - token: ${{ secrets.GITHUB_TOKEN }} - min-coverage-overall: ${{ env.COVERAGE_PERCENT }} - debug-mode: false - title: Code Coverage - update-comment: true From 2bb9dd68d040de6e054ef65c4bef9f8a5ebb6e0a Mon Sep 17 00:00:00 2001 From: jisu Date: Mon, 25 Dec 2023 03:47:20 +0900 Subject: [PATCH 09/13] style: delete unused setting --- build.gradle | 2 -- 1 file changed, 2 deletions(-) diff --git a/build.gradle b/build.gradle index a564e397..e85ade1d 100644 --- a/build.gradle +++ b/build.gradle @@ -55,10 +55,8 @@ jacocoTestReport { reports{ html.required.set(true) xml.required.set(true) - csv.required.set(true) html.destination file("$buildDir/reports/jacoco/index.html") xml.destination file("$buildDir/reports/jacoco/index.xml") - csv.destination file("$buildDir/reports/jacoco/index.csv") } afterEvaluate { From 085f707e710f646c3db6e8982d32b6b490fe6e2f Mon Sep 17 00:00:00 2001 From: jisu Date: Mon, 25 Dec 2023 06:11:41 +0900 Subject: [PATCH 10/13] chore: add sonar exclusions property path --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index e85ade1d..c88d72ec 100644 --- a/build.gradle +++ b/build.gradle @@ -43,7 +43,7 @@ sonar { property 'sonar.sources', 'src' property 'sonar.language', 'java' property 'sonar.sourceEncoding', 'UTF-8' - property 'sonar.exclusions', '**/*Application*.java, **/*Controller*.java ,**/config/**, **/dto/**, ' + + property 'sonar.exclusions', '**/test/**, **/resources/**, **/*Application*.java, **/*Controller*.java ,**/config/**, **/dto/**, ' + '**/exception/**, **/security/**, **/support/**, **/Q*.java' property 'sonar.test.inclusions', '**/*Test*.java' property 'sonar.java.coveragePlugin', 'jacoco' From 1ba444387b6bfa13cb4ac437afffcaf747ec5300 Mon Sep 17 00:00:00 2001 From: jisu Date: Mon, 25 Dec 2023 06:43:31 +0900 Subject: [PATCH 11/13] chore: change sonar cloud setting --- .github/workflows/ci-backend.yml | 7 ------- build.gradle | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/.github/workflows/ci-backend.yml b/.github/workflows/ci-backend.yml index 432e3103..58d95590 100644 --- a/.github/workflows/ci-backend.yml +++ b/.github/workflows/ci-backend.yml @@ -40,13 +40,6 @@ jobs: arguments: check cache-read-only: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/develop' }} - - name: Cache Gradle packages - uses: actions/cache@v3 - with: - path: ~/.gradle/caches - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} - restore-keys: ${{ runner.os }}-gradle - - name: Build and analyze env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/build.gradle b/build.gradle index c88d72ec..68ad2167 100644 --- a/build.gradle +++ b/build.gradle @@ -45,7 +45,7 @@ sonar { property 'sonar.sourceEncoding', 'UTF-8' property 'sonar.exclusions', '**/test/**, **/resources/**, **/*Application*.java, **/*Controller*.java ,**/config/**, **/dto/**, ' + '**/exception/**, **/security/**, **/support/**, **/Q*.java' - property 'sonar.test.inclusions', '**/*Test*.java' + property 'sonar.test.inclusions', '**/*Test.java' property 'sonar.java.coveragePlugin', 'jacoco' } } From 6903932f75452039f9d85c6b67f3cbf49bb4eb29 Mon Sep 17 00:00:00 2001 From: jisu Date: Tue, 26 Dec 2023 20:30:26 +0900 Subject: [PATCH 12/13] chore: delete dto from test coverage excludes --- build.gradle | 58 +++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 30 deletions(-) diff --git a/build.gradle b/build.gradle index 68ad2167..eb59b0e4 100644 --- a/build.gradle +++ b/build.gradle @@ -20,6 +20,33 @@ configurations { } } +repositories { + mavenCentral() +} + +dependencies { + implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'org.springframework.boot:spring-boot-starter-validation' + implementation 'org.springframework.boot:spring-boot-starter-aop' + implementation 'org.springframework.boot:spring-boot-starter-mail' + implementation 'org.springframework.boot:spring-boot-starter-data-redis' + implementation 'com.amazonaws:aws-java-sdk-ses:1.12.429' + implementation 'io.jsonwebtoken:jjwt:0.9.1' + implementation 'org.springdoc:springdoc-openapi-ui:1.6.15' + implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE' + implementation 'com.slack.api:slack-api-client:1.29.0' + implementation platform("org.springframework.cloud:spring-cloud-dependencies:2021.0.5") + implementation "org.springframework.cloud:spring-cloud-starter-openfeign" + compileOnly 'org.projectlombok:lombok' + runtimeOnly 'com.h2database:h2' + runtimeOnly 'com.mysql:mysql-connector-j' + annotationProcessor 'org.projectlombok:lombok' + testImplementation 'org.springframework.boot:spring-boot-starter-test' + testImplementation 'io.rest-assured:rest-assured' + testImplementation 'it.ozimov:embedded-redis:0.7.2' +} + jacoco { toolVersion = '0.8.8' } @@ -43,7 +70,7 @@ sonar { property 'sonar.sources', 'src' property 'sonar.language', 'java' property 'sonar.sourceEncoding', 'UTF-8' - property 'sonar.exclusions', '**/test/**, **/resources/**, **/*Application*.java, **/*Controller*.java ,**/config/**, **/dto/**, ' + + property 'sonar.exclusions', '**/test/**, **/resources/**, **/*Application*.java, **/*Controller*.java ,**/config/**,' + '**/exception/**, **/security/**, **/support/**, **/Q*.java' property 'sonar.test.inclusions', '**/*Test.java' property 'sonar.java.coveragePlugin', 'jacoco' @@ -67,7 +94,6 @@ jacocoTestReport { "**/*Application*", "**/*Controller*", "**/config/*", - "**/dto/*", "**/exception/*", "**/security/*", "**/support/*" @@ -101,7 +127,6 @@ jacocoTestCoverageVerification { '**.*Application*', '**.*Controller*', '**.config.*', - '**.dto.*', '**.exception.*', '**.security.*', '**.support.*' @@ -109,30 +134,3 @@ jacocoTestCoverageVerification { } } } - -repositories { - mavenCentral() -} - -dependencies { - implementation 'org.springframework.boot:spring-boot-starter-data-jpa' - implementation 'org.springframework.boot:spring-boot-starter-web' - implementation 'org.springframework.boot:spring-boot-starter-validation' - implementation 'org.springframework.boot:spring-boot-starter-aop' - implementation 'org.springframework.boot:spring-boot-starter-mail' - implementation 'org.springframework.boot:spring-boot-starter-data-redis' - implementation 'com.amazonaws:aws-java-sdk-ses:1.12.429' - implementation 'io.jsonwebtoken:jjwt:0.9.1' - implementation 'org.springdoc:springdoc-openapi-ui:1.6.15' - implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE' - implementation 'com.slack.api:slack-api-client:1.29.0' - implementation platform("org.springframework.cloud:spring-cloud-dependencies:2021.0.5") - implementation "org.springframework.cloud:spring-cloud-starter-openfeign" - compileOnly 'org.projectlombok:lombok' - runtimeOnly 'com.h2database:h2' - runtimeOnly 'com.mysql:mysql-connector-j' - annotationProcessor 'org.projectlombok:lombok' - testImplementation 'org.springframework.boot:spring-boot-starter-test' - testImplementation 'io.rest-assured:rest-assured' - testImplementation 'it.ozimov:embedded-redis:0.7.2' -} From 61893b5bd9afaf5e357b04c722cdb94e40431896 Mon Sep 17 00:00:00 2001 From: jisu Date: Tue, 26 Dec 2023 20:38:43 +0900 Subject: [PATCH 13/13] chore: add dto in coverage --- build.gradle | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index eb59b0e4..d780421b 100644 --- a/build.gradle +++ b/build.gradle @@ -70,7 +70,7 @@ sonar { property 'sonar.sources', 'src' property 'sonar.language', 'java' property 'sonar.sourceEncoding', 'UTF-8' - property 'sonar.exclusions', '**/test/**, **/resources/**, **/*Application*.java, **/*Controller*.java ,**/config/**,' + + property 'sonar.exclusions', '**/test/**, **/resources/**, **/*Application*.java, **/*Controller*.java ,**/config/**, **/dto/**' + '**/exception/**, **/security/**, **/support/**, **/Q*.java' property 'sonar.test.inclusions', '**/*Test.java' property 'sonar.java.coveragePlugin', 'jacoco' @@ -94,6 +94,7 @@ jacocoTestReport { "**/*Application*", "**/*Controller*", "**/config/*", + "**/dto/*", "**/exception/*", "**/security/*", "**/support/*" @@ -127,6 +128,7 @@ jacocoTestCoverageVerification { '**.*Application*', '**.*Controller*', '**.config.*', + '**.dto.*', '**.exception.*', '**.security.*', '**.support.*'