-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.gradle
More file actions
101 lines (83 loc) · 2.97 KB
/
build.gradle
File metadata and controls
101 lines (83 loc) · 2.97 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
plugins {
id 'java'
id 'org.springframework.boot' version '3.5.9'
id 'io.spring.dependency-management' version '1.1.7'
}
group = 'com.omteam'
version = '0.0.1-SNAPSHOT'
description = 'OMT server'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
// Spring Boot Core,Web
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.boot:spring-boot-starter-webflux' // 비동기 클라이언트 등 사용 시 필요
// Security & OAuth2
implementation 'org.springframework.boot:spring-boot-starter-security'
// implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
implementation 'io.jsonwebtoken:jjwt-api:0.13.0'
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.13.0'
runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.13.0'
implementation 'com.google.api-client:google-api-client:2.7.2'
// Database
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'com.mysql:mysql-connector-j'
// Redis
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
// Resilience4j (Circuit Breaker)
implementation 'io.github.resilience4j:resilience4j-spring-boot3:2.2.0'
// Firebase Admin SDK
implementation 'com.google.firebase:firebase-admin:9.4.3'
// Swagger/OpenAPI
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.15'
// Lombok
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
// Testing
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
testImplementation 'io.projectreactor:reactor-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
testRuntimeOnly 'com.h2database:h2'
// MockWebServer for integration tests
testImplementation 'com.squareup.okhttp3:mockwebserver:4.12.0'
testImplementation 'com.squareup.okhttp3:okhttp:4.12.0'
}
// 단위 테스트 (기본 test 태스크)
tasks.named('test') {
useJUnitPlatform {
excludeTags 'integration'
}
}
// 통합 테스트 태스크
tasks.register('integrationTest', Test) {
description = 'Runs integration tests.'
group = 'verification'
useJUnitPlatform {
includeTags 'integration'
}
shouldRunAfter tasks.named('test')
}
// 전체 테스트 (단위 + 통합)
tasks.register('allTests', Test) {
description = 'Runs all tests including integration tests.'
group = 'verification'
useJUnitPlatform()
}
// plain JAR 생성 비활성화 → build/libs/ 에 bootJar만 생성
tasks.named('jar') {
enabled = false
}