-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.gradle
More file actions
133 lines (107 loc) · 3.41 KB
/
build.gradle
File metadata and controls
133 lines (107 loc) · 3.41 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
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.2'
id 'io.spring.dependency-management' version '1.1.7'
id("com.diffplug.spotless") version "7.0.3"
}
group = 'com.hiarc'
version = '0.0.1-SNAPSHOT'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
// --- 웹, 데이터베이스, 크롤링 필수 라이브러리 ---
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'com.mysql:mysql-connector-j'
runtimeOnly 'com.h2database:h2'
// --- 보안 및 JWT ---
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
implementation 'io.jsonwebtoken:jjwt-api:0.11.5'
implementation 'io.jsonwebtoken:jjwt-impl:0.11.5'
implementation 'io.jsonwebtoken:jjwt-jackson:0.11.5'
// --- Redis 및 캐시 ---
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
// --- 유틸리티 및 기타 ---
implementation 'org.apache.poi:poi-ooxml:5.4.0'
implementation 'com.opencsv:opencsv:5.7.1'
implementation 'org.springframework.boot:spring-boot-starter-validation'
// --- Lombok ---
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.projectlombok:lombok'
// --- QueryDSL ---
implementation 'com.querydsl:querydsl-jpa:5.1.0:jakarta'
annotationProcessor 'com.querydsl:querydsl-apt:5.1.0:jakarta'
annotationProcessor 'jakarta.persistence:jakarta.persistence-api'
// --- 테스트 ---
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
testImplementation("org.assertj:assertj-core:3.25.3")
testImplementation("org.springframework.security:spring-security-test")
// --- API 문서 (Swagger) ---
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0'
// --- AWS S3 ---
implementation platform('software.amazon.awssdk:bom:2.32.14') // AWS SDK 버전 관리를 위한 BOM
implementation 'software.amazon.awssdk:s3'
implementation 'software.amazon.awssdk:lambda'
}
// QueryDSL 설정
def generated = 'src/main/generated'
// 생성된 소스를 소스 디렉토리로 추가
sourceSets {
main.java.srcDirs += [ generated ]
}
// compileJava 설정
compileJava {
options.generatedSourceOutputDirectory = file(generated)
}
// clean 시 generated 폴더 삭제
clean {
delete file(generated)
}
tasks.named('test') {
useJUnitPlatform()
}
jar {
enabled = false
}
test {
useJUnitPlatform()
}
spotless {
java {
// 이 방식으로 변경하면 경로 문제를 완전히 해결할 수 있습니다.
target fileTree(project.rootDir) {
include '**/*.java'
exclude '**/build/**', '**/src/main/generated/**'
}
palantirJavaFormat()
removeUnusedImports()
trimTrailingWhitespace()
endWithNewline()
}
yaml {
// ▼▼▼ 이 부분을 수정합니다 ▼▼▼
// .yaml 파일이 위치하는 resources 폴더만 대상으로 지정합니다.
target 'src/main/resources/**/*.yaml', 'src/test/resources/**/*.yaml'
prettier()
}
}
tasks.register('updateGitHooks', Copy) {
from 'scripts/pre-commit'
into './.git/hooks'
}
compileJava.dependsOn updateGitHooks