Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor | CAKK-95 | 의존성 관리 방식 관련 리팩토링 #226

Merged
merged 4 commits into from
Dec 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 7 additions & 10 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,11 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
kotlin("jvm")
kotlin("plugin.spring") apply false
kotlin("plugin.jpa") apply false

id("java")
id("org.springframework.boot") apply false
id("io.spring.dependency-management")
alias(libs.plugins.kotlin.jvm)
alias(libs.plugins.kotlin.spring) apply false
alias(libs.plugins.kotlin.jpa) apply false
alias(libs.plugins.spring.boot) apply false
alias(libs.plugins.spring.dependency.management)

checkstyle
jacoco
Expand Down Expand Up @@ -52,9 +50,8 @@ subprojects {
apply(plugin = "org.jetbrains.kotlin.plugin.jpa")

dependencies {
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation(libs.kotlin.stdlib.jdk8)
implementation(libs.kotlin.reflect)
}

tasks.withType<KotlinCompile> {
Expand Down
18 changes: 9 additions & 9 deletions cakk-admin/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,17 @@ tasks.jar {
}

dependencies {
implementation(project(":cakk-common"))
implementation(project(":cakk-domain:mysql"))
implementation(project(":cakk-core"))
implementation(projects.common)
implementation(projects.persistenceMysql)
implementation(projects.application)

implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-validation")
implementation("org.springframework.boot:spring-boot-starter-security")
implementation("org.springframework.boot:spring-boot-starter-oauth2-client")
implementation(libs.spring.boot.starter.web)
implementation(libs.spring.boot.starter.validation)
implementation(libs.spring.boot.starter.security)
implementation(libs.spring.boot.starter.oauth)

implementation("org.springframework:spring-tx")
implementation(libs.spring.tx)

// Point
implementation("org.locationtech.jts:jts-core:1.18.2")
implementation(libs.jts.core)
}
54 changes: 27 additions & 27 deletions cakk-api/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,45 +1,45 @@
description = "api module"

dependencies {
implementation(project(":cakk-common"))
implementation(project(":cakk-domain:mysql"))
implementation(project(":cakk-domain:redis"))
implementation(project(":cakk-external"))
implementation(project(":cakk-core"))
implementation(projects.common)
implementation(projects.persistenceMysql)
implementation(projects.persistenceRedis)
implementation(projects.external)
implementation(projects.application)

// basic
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-validation")
implementation("org.springframework.boot:spring-boot-starter-aop:3.3.0")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
annotationProcessor("org.springframework.boot:spring-boot-configuration-processor")
implementation(libs.spring.boot.starter.web)
implementation(libs.spring.boot.starter.validation)
implementation(libs.spring.boot.starter.aop)
annotationProcessor(libs.spring.boot.configuration.processor)
implementation(libs.kotlin.jackson)

// Security & OAuth
implementation("org.springframework.boot:spring-boot-starter-security")
implementation("org.springframework.boot:spring-boot-starter-oauth2-client")
implementation("com.google.api-client:google-api-client-jackson2:2.2.0")
implementation("com.google.api-client:google-api-client:2.2.0")
implementation(libs.spring.boot.starter.security)
implementation(libs.spring.boot.starter.oauth)
implementation(libs.google.api.client)
implementation(libs.google.api.client.jackson2)

// Jwt
implementation("io.jsonwebtoken:jjwt-api:0.11.5")
implementation("io.jsonwebtoken:jjwt-impl:0.11.5")
implementation("io.jsonwebtoken:jjwt-jackson:0.11.5")
implementation(libs.jwt.api)
implementation(libs.jwt.impl)
implementation(libs.jwt.jackson)

// test
testImplementation("com.tngtech.archunit:archunit-junit5:1.1.0")
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.springframework.security:spring-security-test")
testImplementation("org.mockito.kotlin:mockito-kotlin:5.4.0")
testImplementation("com.navercorp.fixturemonkey:fixture-monkey-starter:1.0.23")
testImplementation("io.kotest:kotest-runner-junit5:${property("kotestVersion")}")
testImplementation("io.mockk:mockk:${property("mockKVersion")}")
testImplementation(libs.archunit)
testImplementation(libs.spring.boot.starter.test)
testImplementation(libs.spring.security.test)
testImplementation(libs.mockito.kotlin)
testImplementation(libs.fixture.monkey.starter)
testImplementation(libs.kotest.junit)
testImplementation(libs.mockk)

// test container
testImplementation("org.testcontainers:junit-jupiter:1.19.7")
testImplementation("org.testcontainers:mysql:1.19.7")
testImplementation(libs.testcontainers.junit)
testImplementation(libs.testcontainers.mysql)

// Point
implementation("org.locationtech.jts:jts-core:1.18.2")
implementation(libs.jts.core)
}

tasks.bootJar {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ class AppleAuthProviderTest : MockitoTest() {
val oidcPublicKeyList = fixtureMonkey.giveMeBuilder(OidcPublicKeyList::class.java)
.set("keys", Arbitraries.of(oidcPublicKeyFixture).list().ofMinSize(1).ofMaxSize(10))
.sample()
val publicKey = fixtureMonkey.giveMeOne(PublicKey::class.java)
val publicKey = mock(PublicKey::class.java)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이거 mock Fixture 라이브러리 메서드인가요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

네, mockito 메서드입니다.

public class MockitoCore {

    . . .

    public <T> T mock(Class<T> typeToMock, MockSettings settings) {
        if (!(settings instanceof MockSettingsImpl)) {
            throw new IllegalArgumentException(
                    "Unexpected implementation of '"
                            + settings.getClass().getCanonicalName()
                            + "'\n"
                            + "At the moment, you cannot provide your own implementations of that class.");
        }
        MockSettingsImpl impl = (MockSettingsImpl) settings;
        MockCreationSettings<T> creationSettings = impl.build(typeToMock);
        checkDoNotMockAnnotation(creationSettings.getTypeToMock(), creationSettings);
        T mock = createMock(creationSettings);
        mockingProgress().mockingStarted(mock, creationSettings);
        return mock;
    }
. . .
}

val claims = fixtureMonkey.giveMeBuilder(DefaultClaims::class.java).sample()
claims.setSubject(Arbitraries.strings().withCharRange('a', 'z').ofMinLength(5).ofMaxLength(10).sample())

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ internal class KakaoAuthProviderTest : MockitoTest() {
val oidcPublicKeyList: OidcPublicKeyList = fixtureMonkey.giveMeBuilder(OidcPublicKeyList::class.java)
.set("keys", Arbitraries.of(oidcPublicKeyFixture).list().ofMinSize(1).ofMaxSize(10))
.sample()
val publicKey = fixtureMonkey.giveMeOne(PublicKey::class.java)
val publicKey = mock(PublicKey::class.java)
val claims = fixtureMonkey.giveMeBuilder(DefaultClaims::class.java).sample()
claims.setSubject(getStringFixtureBw(5, 10).sample())

Expand Down
30 changes: 14 additions & 16 deletions cakk-batch/build.gradle
Original file line number Diff line number Diff line change
@@ -1,35 +1,33 @@
description = "batch module"

dependencies {
implementation project(':cakk-common')
implementation project(':cakk-domain:mysql')
implementation project(':cakk-domain:redis')
implementation(projects.common)
implementation(projects.persistenceMysql)
implementation(projects.persistenceRedis)

// basic
implementation('org.springframework.boot:spring-boot-starter-web') {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
implementation(libs.spring.boot.starter.web) {
exclude group: "org.springframework.boot", module: "spring-boot-starter-tomcat"
}
implementation('org.springframework.boot:spring-boot-starter-batch')
implementation('org.springframework.boot:spring-boot-starter-validation')
implementation('org.springframework:spring-tx')
annotationProcessor('org.springframework.boot:spring-boot-configuration-processor')
implementation(libs.spring.boot.starter.batch)
implementation(libs.spring.boot.starter.validation)
annotationProcessor(libs.spring.boot.configuration.processor)

// test
testImplementation('com.tngtech.archunit:archunit-junit5:1.1.0')
testImplementation('org.springframework.boot:spring-boot-starter-test')
testImplementation('org.springframework.batch:spring-batch-test')
testImplementation(libs.archunit)
testImplementation(libs.spring.boot.starter.test)

// test container
testImplementation('org.testcontainers:junit-jupiter:1.19.7')
testImplementation(libs.testcontainers.junit)

// slack 설정
implementation('net.gpedro.integrations.slack:slack-webhook:1.4.0')
implementation(libs.slack.webhook)

// Point
implementation 'org.locationtech.jts:jts-core:1.18.2'
implementation(libs.jts.core)

// aws lambda
implementation 'com.amazonaws.serverless:aws-serverless-java-container-springboot3:2.0.1'
implementation(libs.aws.serverless)
}

tasks.register('buildZip', Zip) {
Expand Down
41 changes: 20 additions & 21 deletions cakk-core/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,39 +1,38 @@
description = "core module"

dependencies {
implementation(project(":cakk-common"))
implementation(project(":cakk-domain:mysql"))
implementation(project(":cakk-domain:redis"))
implementation(project(":cakk-external"))
implementation(projects.common)
implementation(projects.persistenceMysql)
implementation(projects.persistenceRedis)
implementation(projects.external)

// basic
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-validation")
implementation("org.springframework.boot:spring-boot-starter-aop:3.3.0")
implementation("org.springframework:spring-tx")
annotationProcessor("org.springframework.boot:spring-boot-configuration-processor")
implementation(libs.spring.boot.starter.web)
implementation(libs.spring.boot.starter.validation)
implementation(libs.spring.boot.starter.aop)
annotationProcessor(libs.spring.boot.configuration.processor)

// test
testImplementation("com.tngtech.archunit:archunit-junit5:1.1.0")
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.mockito.kotlin:mockito-kotlin:5.4.0")
testImplementation("com.navercorp.fixturemonkey:fixture-monkey-starter:1.0.23")
testImplementation("io.kotest:kotest-runner-junit5:${property("kotestVersion")}")
testImplementation("io.mockk:mockk:${property("mockKVersion")}")
testImplementation(libs.archunit)
testImplementation(libs.spring.boot.starter.test)
testImplementation(libs.mockito.kotlin)
testImplementation(libs.fixture.monkey.starter)
testImplementation(libs.kotest.junit)
testImplementation(libs.mockk)

// Jwt
implementation("io.jsonwebtoken:jjwt-api:0.11.5")
implementation("io.jsonwebtoken:jjwt-impl:0.11.5")
implementation("io.jsonwebtoken:jjwt-jackson:0.11.5")
implementation(libs.jwt.api)
implementation(libs.jwt.impl)
implementation(libs.jwt.jackson)

// Point
implementation("org.locationtech.jts:jts-core:1.18.2")
implementation(libs.jts.core)

// Mail
implementation("org.springframework.boot:spring-boot-starter-mail")
implementation(libs.spring.boot.starter.mail)

// Slack
implementation("net.gpedro.integrations.slack:slack-webhook:1.4.0")
implementation(libs.slack.webhook)
}

tasks.bootJar {
Expand Down
42 changes: 21 additions & 21 deletions cakk-domain/mysql/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,39 +1,39 @@
description = "mysql module"

dependencies {
implementation(project(":cakk-common"))
implementation(projects.common)

// jpa
api("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("io.hypersistence:hypersistence-utils-hibernate-63:3.7.4")
api(libs.spring.boot.starter.data.jpa)

// test
testImplementation("com.navercorp.fixturemonkey:fixture-monkey-starter:1.0.23")
testImplementation("org.assertj:assertj-core")
testImplementation("org.junit.jupiter:junit-jupiter")
testImplementation("org.mockito:mockito-core")
testImplementation("org.mockito:mockito-junit-jupiter")
testImplementation("io.kotest:kotest-runner-junit5:${property("kotestVersion")}")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
// hibernate
implementation(libs.hibernate.core)
implementation(libs.hibernate.spatial)

// querydsl
implementation("com.querydsl:querydsl-jpa:5.0.0:jakarta")
annotationProcessor("com.querydsl:querydsl-apt:5.0.0:jakarta")
annotationProcessor("jakarta.annotation:jakarta.annotation-api")
annotationProcessor("jakarta.persistence:jakarta.persistence-api")
implementation("org.hibernate.orm:hibernate-spatial:6.4.4.Final")
implementation("com.querydsl:querydsl-jpa:5.0.0:jakarta")
implementation("com.querydsl:querydsl-spatial")
annotationProcessor("com.querydsl:querydsl-apt:5.0.0:jakarta")
annotationProcessor(libs.jakarta.annotation.api)
annotationProcessor(libs.jakarta.persistence.api)

// database
runtimeOnly("com.mysql:mysql-connector-j:8.2.0")
runtimeOnly("com.h2database:h2")
runtimeOnly(libs.mysql.connector.java)

//serialize
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
implementation("com.fasterxml.jackson.core:jackson-databind")
implementation(libs.jackson.datatype.jsr310)
implementation(libs.jackson.databind)

// log
implementation("com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0")
implementation(libs.h6spy)

// test
testImplementation(libs.assertj.core)
testImplementation(libs.junit.jupiter)
testImplementation(libs.mockito.core)
testImplementation(libs.mockito.junit.jupiter)
testImplementation(libs.kotest.junit)
testImplementation(libs.fixture.monkey.starter)
}

tasks.bootJar {
Expand Down
6 changes: 3 additions & 3 deletions cakk-domain/redis/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
description = "redis module"

dependencies {
implementation(project(":cakk-common"))
implementation(projects.common)

implementation("org.springframework.boot:spring-boot-starter-data-redis")
implementation("org.redisson:redisson-spring-boot-starter:3.31.0")
implementation(libs.spring.boot.starter.data.redis)
implementation(libs.spring.boot.starter.redisson)
}

tasks.bootJar {
Expand Down
12 changes: 6 additions & 6 deletions cakk-external/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
description = "external module"

dependencies {
implementation(project(":cakk-common"))
implementation(projects.common)

// Basic
implementation("org.springframework:spring-context")
implementation("org.springframework:spring-web")
implementation(libs.spring.context)
implementation(libs.spring.web)

// AWS
implementation("com.amazonaws:aws-java-sdk-s3:1.12.715")
implementation(libs.aws.java.sdk)

// Mail
implementation("org.springframework.boot:spring-boot-starter-mail")
implementation(libs.spring.boot.starter.mail)

// Slack
implementation("net.gpedro.integrations.slack:slack-webhook:1.4.0")
implementation(libs.slack.webhook)
}


Expand Down
14 changes: 0 additions & 14 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,3 @@ projectGroup=com.cakk
### Project Dependency Versions ###
kotlinVersion=2.0.10
javaVersion=21

### Plugin Dependency Versions ###
ktlintVersion=11.6.1

### Spring Dependency Versions ###
springBootVersion=3.2.4
springDependencyManagementVersion=1.1.4

### External Dependency versions ###
querydslVersion=5.0.0
coroutinesVersion=1.8.0-RC
kotestVersion=5.8.0
kotestSpringVersion=1.1.3
mockKVersion=1.13.8
Loading
Loading