import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { val springBootVersion = "3.5.3" val kotlinVersion = "2.2.0" id("org.springframework.boot") version springBootVersion id("io.spring.dependency-management") version "1.1.7" kotlin("jvm") version kotlinVersion kotlin("plugin.spring") version kotlinVersion kotlin("plugin.jpa") version kotlinVersion kotlin("kapt") version kotlinVersion } group = "com.sangdol" version = "0.0.1-SNAPSHOT" java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } kapt { keepJavacAnnotationProcessors = true } repositories { mavenCentral() } dependencies { // Spring implementation("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spring-boot-starter-data-jpa") implementation("org.springframework.boot:spring-boot-starter-validation") // API docs implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.9") // DB implementation("com.github.f4b6a3:tsid-creator:5.2.6") runtimeOnly("com.h2database:h2") runtimeOnly("com.mysql:mysql-connector-j") // Jwt implementation("io.jsonwebtoken:jjwt:0.12.6") // Logging implementation("io.github.oshai:kotlin-logging-jvm:7.0.3") implementation("net.logstash.logback:logstash-logback-encoder:8.1") implementation("com.github.loki4j:loki-logback-appender:2.0.0") implementation("net.ttddyy.observation:datasource-micrometer-spring-boot:1.1.1") // Observability implementation("org.springframework.boot:spring-boot-starter-actuator") implementation("io.micrometer:micrometer-tracing-bridge-otel") implementation("io.opentelemetry:opentelemetry-exporter-otlp") runtimeOnly("io.micrometer:micrometer-registry-prometheus") // Kotlin implementation("org.jetbrains.kotlin:kotlin-reflect") implementation("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("io.github.oshai:kotlin-logging-jvm:7.0.3") // Test testImplementation("org.springframework.boot:spring-boot-starter-test") testImplementation("io.mockk:mockk:1.14.4") testImplementation("com.ninja-squad:springmockk:4.0.2") // Kotest testImplementation("io.kotest:kotest-runner-junit5:5.9.1") testImplementation("io.kotest.extensions:kotest-extensions-spring:1.3.0") // RestAssured testImplementation("io.rest-assured:rest-assured:5.5.5") testImplementation("io.rest-assured:kotlin-extensions:5.5.5") } tasks.withType { useJUnitPlatform() } tasks.withType { compilerOptions { freeCompilerArgs.addAll( "-Xjsr305=strict", "-Xannotation-default-target=param-property" ) jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17) } }