-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathbuild.gradle
More file actions
143 lines (113 loc) · 3.94 KB
/
build.gradle
File metadata and controls
143 lines (113 loc) · 3.94 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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
plugins {
id 'java'
id 'org.springframework.boot' version '3.5.3'
id 'io.spring.dependency-management' version '1.1.7'
id 'org.flywaydb.flyway' version '10.10.0'
}
group = 'com.UMC'
version = '0.0.1-SNAPSHOT'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
springBoot {
mainClass = 'com.lunchchat.LaunchatApplication'
}
configurations.all {
exclude group: 'commons-logging', module: 'commons-logging'
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
ext {
set('springAiVersion', "1.0.0")
}
// Flyway Gradle Plugin 설정
flyway {
url = findProperty('DATABASE_URL')
user = findProperty('DATABASE_USERNAME')
password = findProperty('DATABASE_PASSWORD')
locations = ['classpath:db/migration']
cleanDisabled = false
baselineOnMigrate = true
validateOnMigrate = true
}
dependencies {
// 기본 의존성
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-websocket'
// Flyway 의존성 추가
implementation 'org.flywaydb:flyway-core'
implementation 'org.flywaydb:flyway-mysql'
// JSON 처리
implementation 'com.fasterxml.jackson.core:jackson-databind'
// Swagger
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.9'
// 모니터링 및 헬스체크
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'io.micrometer:micrometer-registry-prometheus'
// 개발 도구
developmentOnly 'org.springframework.boot:spring-boot-devtools'
// Lombok
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
// Mysql
runtimeOnly 'com.mysql:mysql-connector-j'
// 테스트 의존성
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
// FCM
implementation 'com.google.firebase:firebase-admin:9.1.1'
//Spring Security
implementation 'org.springframework.boot:spring-boot-starter-security'
//OAuth Client
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
//Web Token
implementation 'io.jsonwebtoken:jjwt-api:0.12.3'
implementation 'io.jsonwebtoken:jjwt-impl:0.12.3'
implementation 'io.jsonwebtoken:jjwt-jackson:0.12.3'
//Web Flux
//implementation 'org.springframework.boot:spring-boot-starter-webflux'
//GoogleApi
implementation 'com.google.api-client:google-api-client:2.2.0'
implementation 'com.google.oauth-client:google-oauth-client-jetty:1.34.1'
implementation 'com.google.apis:google-api-services-sheets:v4-rev20230227-2.0.0'
// S3
implementation 'io.awspring.cloud:spring-cloud-aws-starter-s3:3.1.1'
//SpringAI
implementation('org.springframework.ai:spring-ai-starter-model-openai') {
exclude group: 'io.swagger.core.v3', module: 'swagger-annotations'
exclude group: 'io.swagger.core.v3', module: 'swagger-models'
}
// mongoDB
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
}
dependencyManagement {
imports {
mavenBom "org.springframework.ai:spring-ai-bom:${springAiVersion}"
}
}
tasks.named('test') {
useJUnitPlatform()
}
// Flyway 태스크 설정
tasks.named('flywayMigrate') {
doFirst {
println "Running Flyway migration..."
}
}
// 빌드 전 Flyway 검증 (선택사항)
tasks.named('build') {
// dependsOn 'flywayValidate'
}