-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
129 lines (105 loc) · 4.74 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
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.6'
id 'io.spring.dependency-management' version '1.1.6'
}
group = 'page.clab'
version = '1.0.0'
jar {
enabled = false
}
bootJar {
archivesBaseName = "clab"
archiveFileName = "clab.jar"
archiveVersion = "1.0.0"
layered {
enabled = true
}
}
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
dependencies {
// Spring Project
implementation 'org.springframework.boot:spring-boot-starter-web' // 웹 MVC
implementation 'org.springframework.boot:spring-boot-starter-validation' // 유효성 검사
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' // 템플릿 엔진
implementation 'org.springframework.boot:spring-boot-starter-webflux' // WebFlux
// Security
implementation 'org.springframework.boot:spring-boot-starter-security' // Spring Security
implementation 'com.warrenstrange:googleauth:1.5.0' // Google Authenticator
implementation 'io.jsonwebtoken:jjwt-api:0.12.6' // JWT 라이브러리
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.12.6' // JWT 구현체
runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.12.6' // JWT Jackson 모듈
// Monitoring
implementation 'org.springframework.boot:spring-boot-starter-actuator' // Spring Boot Actuator
implementation 'io.micrometer:micrometer-registry-prometheus' // Prometheus
implementation 'ch.qos.logback:logback-classic:1.5.12' // Logback
implementation 'ch.qos.logback:logback-core:1.5.12' // Logback
// DB
implementation 'org.postgresql:postgresql:42.7.4' // PostgreSQL JDBC Driver
implementation 'org.springframework.boot:spring-boot-starter-data-redis' // Redis
implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // Spring Data JPA
implementation 'org.springframework.boot:spring-boot-starter-validation' // Hibernate Validator
implementation 'org.hibernate.validator:hibernate-validator:8.0.1.Final' // Bean Validation
implementation 'jakarta.validation:jakarta.validation-api:3.1.0' // Jakarta Bean Validation
// QueryDSL
implementation 'com.querydsl:querydsl-jpa:5.1.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:5.1.0:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
// Util
compileOnly 'org.projectlombok:lombok' // 롬복
annotationProcessor 'org.projectlombok:lombok' // 롬복
implementation 'com.google.code.gson:gson:2.11.0' // JSON 라이브러리
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0' // Swagger
implementation 'commons-io:commons-io:2.18.0' // Apache Commons IO
implementation 'com.google.guava:guava:33.3.1-jre' // Google Core Libraries For Java
implementation 'org.springframework.boot:spring-boot-starter-mail' // Spring Mail
implementation 'com.google.zxing:core:3.4.1' // QR 코드
implementation 'com.google.zxing:javase:3.5.3' // QR 코드
implementation 'org.apache.commons:commons-lang3:3.17.0' // Apache Commons Lang
// MapStruct
implementation 'org.mapstruct:mapstruct:1.6.3'
annotationProcessor 'org.mapstruct:mapstruct-processor:1.6.3'
annotationProcessor 'org.projectlombok:lombok-mapstruct-binding:0.2.0'
// IPInfo
implementation 'io.ipinfo:ipinfo-spring:0.3.1' // IPInfo Spring
implementation 'io.ipinfo:ipinfo-api:3.0.0' // IPInfo API
// Slack
implementation 'com.slack.api:slack-api-model:1.44.2'
implementation 'com.slack.api:slack-api-client:1.44.2'
implementation 'com.slack.api:slack-app-backend:1.44.2'
// XSS Filter
implementation 'com.navercorp.lucy:lucy-xss-servlet:2.0.1' // Lucy XSS Servlet Filter
implementation 'com.navercorp.lucy:lucy-xss:1.6.3' // Lucy XSS Filter
implementation 'org.apache.commons:commons-text:1.11.0' // Apache Commons Text
// Image
implementation 'commons-io:commons-io:2.18.0'
implementation 'com.drewnoakes:metadata-extractor:2.19.0'
implementation 'org.imgscalr:imgscalr-lib:4.2'
// Emoji
implementation 'com.ibm.icu:icu4j:76.1'
// Test
testImplementation 'org.springframework.boot:spring-boot-starter-test' // Spring Boot Test
testImplementation 'org.springframework.security:spring-security-test' // Spring Security Test
}
tasks.named('test') {
useJUnitPlatform()
}
def querydslDir = layout.buildDirectory.dir("generated/querydsl").get().asFile
sourceSets {
main.java.srcDirs += [querydslDir]
}
tasks.withType(JavaCompile).configureEach {
options.generatedSourceOutputDirectory = file(querydslDir)
}
clean.doLast {
file(querydslDir).deleteDir()
}