api와 storage에 대해 멀티모듈 구조로 분리

This commit is contained in:
2026-01-11 22:20:02 +09:00
parent 24b3b640bc
commit 0cf452bf3b
13 changed files with 1828 additions and 48 deletions

View File

@@ -1,60 +1,85 @@
plugins {
id 'org.jetbrains.kotlin.jvm' version '2.2.21'
id 'org.jetbrains.kotlin.plugin.spring' version '2.2.21'
id 'org.springframework.boot' version '4.0.1'
id 'io.spring.dependency-management' version '1.1.7'
id 'org.hibernate.orm' version '7.2.0.Final'
id 'org.graalvm.buildtools.native' version '0.11.3'
id 'org.jetbrains.kotlin.plugin.jpa' version '2.2.21'
id 'org.jetbrains.kotlin.jvm' version '2.2.21' apply false
id 'org.jetbrains.kotlin.plugin.spring' version '2.2.21' apply false
id 'org.springframework.boot' version '4.0.1' apply false
id 'io.spring.dependency-management' version '1.1.7' apply false
id 'org.hibernate.orm' version '7.2.0.Final' apply false
id 'org.graalvm.buildtools.native' version '0.11.3' apply false
id 'org.jetbrains.kotlin.plugin.jpa' version '2.2.21' apply false
id 'org.jlleitschuh.gradle.ktlint' version '12.1.1' apply false
id 'io.gitlab.arturbosch.detekt' version '1.23.7' apply false
}
group = 'com.quantbench'
version = '0.0.1-SNAPSHOT'
description = 'balance'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(24)
subprojects {
apply plugin: 'org.jetbrains.kotlin.jvm'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'org.jlleitschuh.gradle.ktlint'
// detekt는 Kotlin 2.2.21과 호환성 문제가 있어 주석 처리
// Kotlin 2.0.x로 다운그레이드하거나 detekt 최신 버전 출시 시 활성화
// apply plugin: 'io.gitlab.arturbosch.detekt'
repositories {
mavenCentral()
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-h2console'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-webmvc'
implementation 'org.jetbrains.kotlin:kotlin-reflect'
implementation 'tools.jackson.module:jackson-module-kotlin'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
runtimeOnly 'com.h2database:h2'
runtimeOnly 'org.postgresql:postgresql'
testImplementation 'org.springframework.boot:spring-boot-starter-data-jpa-test'
testImplementation 'org.springframework.boot:spring-boot-starter-webmvc-test'
testImplementation 'org.jetbrains.kotlin:kotlin-test-junit5'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
kotlin {
compilerOptions {
freeCompilerArgs.addAll '-Xjsr305=strict', '-Xannotation-default-target=param-property'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(24)
}
}
}
hibernate {
enhancement {
enableAssociationManagement = true
kotlin {
compilerOptions {
freeCompilerArgs.addAll '-Xjsr305=strict', '-Xannotation-default-target=param-property'
}
}
}
allOpen {
annotation 'jakarta.persistence.Entity'
annotation 'jakarta.persistence.MappedSuperclass'
annotation 'jakarta.persistence.Embeddable'
}
dependencies {
implementation 'org.jetbrains.kotlin:kotlin-reflect'
// detektPlugins 'io.gitlab.arturbosch.detekt:detekt-formatting:1.23.7'
}
tasks.named('test') {
useJUnitPlatform()
tasks.withType(Test) {
useJUnitPlatform()
}
// ktlint 설정
ktlint {
version = '1.4.1'
android = false
outputToConsole = true
coloredOutput = true
ignoreFailures = false
filter {
exclude('**/generated/**')
exclude('**/build/**')
}
}
// detekt 설정 (현재 비활성화 - Kotlin 2.2.21과 호환성 문제)
// detekt {
// buildUponDefaultConfig = true
// allRules = false
// config.setFrom(files("$rootDir/detekt.yml"))
// // baseline은 존재할 때만 사용
// def baselineFile = file("$rootDir/detekt-baseline.xml")
// if (baselineFile.exists()) {
// baseline = baselineFile
// }
// ignoreFailures = false
// }
// tasks.withType(io.gitlab.arturbosch.detekt.Detekt).configureEach {
// reports {
// html.required = true
// xml.required = false
// txt.required = false
// sarif.required = false
// md.required = false
// }
// }
}