-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.gradle.kts
More file actions
97 lines (85 loc) · 3.38 KB
/
build.gradle.kts
File metadata and controls
97 lines (85 loc) · 3.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import java.util.Properties
plugins {
kotlin("jvm") version "2.2.0"
kotlin("plugin.spring") version "2.2.0"
id("org.springframework.boot") version "3.5.5"
id("io.spring.dependency-management") version "1.1.7"
id("org.flywaydb.flyway") version "9.22.3"
id("org.jlleitschuh.gradle.ktlint") version "13.1.0"
}
group = "com.wafflestudio"
version = "0.0.1-SNAPSHOT"
description = "seminar-2025-springboot-assignment"
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.flywaydb:flyway-mysql:9.22.3")
}
}
repositories {
mavenCentral()
maven {
url = uri("https://maven.pkg.github.com/wafflestudio/spring-waffle")
credentials {
username = "wafflestudio"
password = System.getenv("GITHUB_TOKEN")
}
}
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-webflux")
implementation("org.springframework.boot:spring-boot-starter-data-jdbc")
implementation("org.springframework.boot:spring-boot-starter-data-redis")
implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation("org.springframework.boot:spring-boot-starter-mail")
implementation("org.mindrot:jbcrypt:0.4")
implementation("io.jsonwebtoken:jjwt-api:0.11.5")
runtimeOnly("io.jsonwebtoken:jjwt-impl:0.11.5")
runtimeOnly("io.jsonwebtoken:jjwt-jackson:0.11.5")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("com.mysql:mysql-connector-j")
implementation("org.flywaydb:flyway-mysql")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0")
implementation("org.apache.poi:poi:5.2.5")
implementation("org.apache.poi:poi-ooxml:5.2.5")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor")
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.springframework.boot:spring-boot-testcontainers")
testImplementation("org.testcontainers:junit-jupiter")
testImplementation("org.testcontainers:mysql")
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1")
testImplementation("org.mockito.kotlin:mockito-kotlin:5.4.0")
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
// profile_image 업로드 관련 의존성 추가
implementation(platform("software.amazon.awssdk:bom:2.41.19"))
implementation("software.amazon.awssdk:s3")
// OCI Vault - SDK 직접 사용 (waffle-oci-vault 2.1.0은 Spring Boot 3.5와 호환 안됨)
implementation("com.oracle.oci.sdk:oci-java-sdk-secrets:3.80.1")
implementation("com.oracle.oci.sdk:oci-java-sdk-common-httpclient-jersey3:3.80.1")
}
kotlin {
compilerOptions {
freeCompilerArgs.addAll("-Xjsr305=strict")
}
}
tasks.withType<Test> {
useJUnitPlatform()
}
flyway {
val properties = Properties()
file("src/main/resources/application.yaml").inputStream().use {
properties.load(it)
}
url = properties.getProperty("spring.datasource.url")
user = properties.getProperty("spring.datasource.username")
password = properties.getProperty("spring.datasource.password")
}