-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle
140 lines (116 loc) · 4.18 KB
/
build.gradle
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
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.5'
id 'io.spring.dependency-management' version '1.1.6'
id 'com.diffplug.spotless' version '6.23.3'
}
group = 'com.ripple'
version = '0.0.1-SNAPSHOT'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
//Spring Boot
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation'
//Lombok
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
//Database
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
runtimeOnly 'com.mysql:mysql-connector-j'
// Redis
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
// swagger
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0'
//Test
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
//OAuth2
implementation 'org.springframework.security:spring-security-oauth2-client'
implementation platform('org.springframework.boot:spring-boot-dependencies:3.3.5')
implementation 'org.springframework.boot:spring-boot-starter-webflux'
//JWT
implementation 'io.jsonwebtoken:jjwt-api:0.11.5'
implementation 'io.jsonwebtoken:jjwt-impl:0.11.5'
implementation 'io.jsonwebtoken:jjwt-jackson:0.11.5'
//Spring WebFlux
implementation 'org.springframework.boot:spring-boot-starter-webflux'
// Apache POI for reading Excel files
implementation 'org.apache.poi:poi:5.2.3'
implementation 'org.apache.poi:poi-ooxml:5.2.3'
// Netty
implementation 'io.netty:netty-resolver-dns-native-macos:4.1.68.Final:osx-aarch_64'
// querydsl
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
// jsoup
implementation 'org.jsoup:jsoup:1.18.3'
// amazon s3
implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'
}
clean { delete file('src/main/generated')}
tasks.named('test') {
useJUnitPlatform()
}
/**
* Spotless 설정
*/
spotless {
java {
importOrder(
"java",
"javax",
"lombok",
"org.springframework",
"",
"\\#",
"org.junit",
"\\#org.junit",
"com.guide",
"\\#com.guide"
) // import 순서 정의
removeUnusedImports() // 사용하지 않는 import 제거
googleJavaFormat() // 구글 자바 포맷 적용
indentWithTabs(2)
indentWithSpaces(4)
trimTrailingWhitespace() // 공백 제거
endWithNewline() // 끝부분 New Line 처리
}
}
/**
* pre-commit hook 설정, 커밋 or Push 시 spotlessApply task 실행
*/
tasks.register('updateGitHooks', Copy) {
from new File(rootProject.rootDir, 'scripts/pre-commit')
into { new File(rootProject.rootDir, '.git/hooks') }
if (System.getProperty('os.name').toLowerCase().contains('windows')) {
Runtime.getRuntime().exec("cmd /c chmod -R +x .git/hooks/")
} else {
Runtime.getRuntime().exec("chmod -R +x .git/hooks/")
}
}
/**
* compileJava task에 spotlessApply, updateGitHooks task 추가
*/
tasks.named('compileJava') {
dependsOn 'spotlessApply'
dependsOn 'updateGitHooks'
}