1
- // Querydsl 버전 plugins
2
- buildscript {
3
- ext {
4
- queryDslVersion = " 5.0.0"
5
- }
6
- }
7
-
8
1
plugins {
9
2
id ' java'
10
- id ' org.springframework.boot' version ' 2.7.11'
11
- id ' io.spring.dependency-management' version ' 1.1.4'
12
- id " org.asciidoctor.jvm.convert" version " 3.3.2"
13
- id " me.champeau.jmh" version " 0.7.2"
14
- id ' com.diffplug.spotless' version ' 6.23.3'
3
+ id ' org.springframework.boot' version " ${ springBootVersion} "
4
+ id ' io.spring.dependency-management' version " ${ springDependencyManagementVersion} "
5
+ id ' com.diffplug.spotless' version " ${ spotlessVersion} "
15
6
id ' jacoco'
16
7
}
17
8
18
- group = ' com.gaebaljip '
19
- version = ' 1.0.0 '
9
+ group = " ${ projectGroup } "
10
+ version = " ${ applicationVersion } "
20
11
21
12
java {
22
- sourceCompatibility = ' 17'
23
- }
24
-
25
- configurations {
26
- asciidoctorExt
27
- compileOnly {
28
- extendsFrom annotationProcessor
29
- }
13
+ sourceCompatibility = " ${ javaVersion} "
30
14
}
31
15
32
16
repositories {
@@ -41,10 +25,11 @@ dependencies {
41
25
implementation ' org.springframework.boot:spring-boot-starter-validation'
42
26
implementation ' org.springframework.boot:spring-boot-starter-web'
43
27
implementation ' org.springframework.boot:spring-boot-starter-security'
28
+ implementation ' org.springframework.boot:spring-boot-starter-thymeleaf'
44
29
45
30
// database
46
31
implementation ' org.springframework.boot:spring-boot-starter-data-jpa'
47
- testImplementation ' org.projectlombok:lombok:1.18.26 '
32
+ testImplementation ' org.projectlombok:lombok'
48
33
runtimeOnly ' org.mariadb.jdbc:mariadb-java-client'
49
34
implementation ' org.springframework.boot:spring-boot-starter-data-redis'
50
35
@@ -55,54 +40,42 @@ dependencies {
55
40
// test
56
41
testImplementation ' org.springframework.boot:spring-boot-starter-test'
57
42
testImplementation ' org.springframework.security:spring-security-test'
58
- testImplementation " org.testcontainers:mariadb:1.19.8 "
59
- testImplementation " org.testcontainers:testcontainers:1.19.8 "
60
- testImplementation " org.testcontainers:junit-jupiter:1.19.8 "
61
- testImplementation " org.testcontainers:localstack:1.19.8 "
62
- testImplementation " org.jeasy:easy-random-core:5.0.0 "
63
-
43
+ testImplementation ' org.springframework.boot:spring-boot-starter-thymeleaf '
44
+ testImplementation " org.testcontainers:mariadb: ${ testContainersVersion } "
45
+ testImplementation " org.testcontainers:testcontainers: ${ testContainersVersion } "
46
+ testImplementation " org.testcontainers:junit-jupiter: ${ testContainersVersion } "
47
+ testImplementation " org.testcontainers:localstack: ${ testContainersVersion } "
48
+ testImplementation " org.jeasy:easy-random-core: ${ easyRandomVersion } "
64
49
65
50
66
51
// querydsl
67
52
implementation ' com.querydsl:querydsl-jpa'
68
53
annotationProcessor " com.querydsl:querydsl-apt:${ dependencyManagement.importedProperties['querydsl.version']} :jpa"
69
54
70
55
// s3
71
- implementation ' io.awspring.cloud:spring-cloud-aws-s3:3.0.2 '
56
+ implementation " io.awspring.cloud:spring-cloud-aws-s3:${ s3Version } "
72
57
73
58
74
59
annotationProcessor " jakarta.annotation:jakarta.annotation-api"
75
60
annotationProcessor " jakarta.persistence:jakarta.persistence-api"
76
61
77
62
// jwt
78
- implementation group : ' io.jsonwebtoken' , name : ' jjwt-api' , version : ' 0.11.5'
79
- runtimeOnly group : ' io.jsonwebtoken' , name : ' jjwt-impl' , version : ' 0.11.5'
80
- runtimeOnly group : ' io.jsonwebtoken' , name : ' jjwt-jackson' , version : ' 0.11.5'
81
-
82
- asciidoctorExt ' org.springframework.restdocs:spring-restdocs-asciidoctor'
83
- testImplementation ' org.springframework.restdocs:spring-restdocs-mockmvc'
63
+ implementation " io.jsonwebtoken:jjwt-api:${ jjwtVersion} "
64
+ runtimeOnly " io.jsonwebtoken:jjwt-impl:${ jjwtVersion} "
65
+ runtimeOnly " io.jsonwebtoken:jjwt-jackson:${ jjwtVersion} "
84
66
85
67
// email
86
- implementation ' org.springframework.boot:spring-boot-starter-thymeleaf'
87
- implementation group : ' software.amazon.awssdk' , name : ' ses' , version : " 2.19.29"
88
- implementation ' com.sun.mail:javax.mail:1.6.2'
89
-
90
- testImplementation ' org.springframework.boot:spring-boot-starter-thymeleaf'
68
+ implementation " software.amazon.awssdk:ses:${ sesVersion} "
69
+ implementation " com.sun.mail:javax.mail:${ javaxMailVersion} "
91
70
92
71
// Swagger
93
- implementation ' org.springdoc:springdoc-openapi-ui:1.6.11'
94
-
95
- // OpenCsv
96
- implementation group : ' com.opencsv' , name : ' opencsv' , version : ' 5.7.1'
97
-
98
- // Actuator
99
- implementation ' org.springframework.boot:spring-boot-starter-actuator'
72
+ implementation " org.springdoc:springdoc-openapi-ui:${ swaggerVersion} "
100
73
101
- // Prometheus
102
- implementation ' io.micrometer:micrometer-registry-prometheus '
74
+ // OpenCsv
75
+ implementation " com.opencsv:opencsv: ${ opencsvVersion } "
103
76
104
- // quartz
105
- implementation group : ' org.quartz-scheduler' , name : ' quartz' , version : ' 2.3.2 '
77
+ // Quartz
78
+ implementation " org.quartz-scheduler: quartz: ${ quartzVersion } "
106
79
}
107
80
108
81
tasks. named(' bootBuildImage' ) {
@@ -127,57 +100,10 @@ clean.doLast {
127
100
file(querydslDir). deleteDir()
128
101
}
129
102
130
- ext {
131
- snippetsDir = file(' build/generated-snippets' )
132
- }
133
-
134
- test {
135
- outputs. dir snippetsDir
136
- finalizedBy jacocoTestReport
137
- }
138
-
139
- asciidoctor {
140
- inputs. dir snippetsDir
141
- configurations ' asciidoctorExt'
142
- dependsOn test
143
- }
144
-
145
- bootJar {
146
- dependsOn asciidoctor
147
- from (" ${ asciidoctor.outputDir} /html5" ) {
148
- into ' static/docs'
149
- }
150
- }
151
-
152
- asciidoctor. doFirst { // (6) asciidoctor가 실행될 때 docs 하위 파일 삭제
153
- delete file(' src/main/resources/static/docs' )
154
- }
155
-
156
- bootJar { // (7) bootJar 시 asciidoctor 종속되고 build하위 스니펫츠 파일을 classes 하위로 복사
157
- dependsOn asciidoctor
158
- copy {
159
- from " ${ asciidoctor.outputDir} "
160
- into ' BOOT-INF/classes/static/docs'
161
- }
162
- }
163
-
164
- task copyDocument (type : Copy ) { // (8) from의 파일을 into로 복사
165
- dependsOn asciidoctor
166
- from file(" build/docs/asciidoc" )
167
- into file(" src/main/resources/static/docs" )
168
- }
169
-
170
- build { // (9) build 시 copyDocument 실행
171
- dependsOn copyDocument
172
- }
173
103
tasks. named(' compileJava' ) {
174
104
dependsOn ' spotlessApply'
175
105
}
176
106
177
- jar {
178
- enabled = false
179
- }
180
-
181
107
spotless {
182
108
java {
183
109
// Google Java 포맷 적용
@@ -262,4 +188,4 @@ jacocoTestCoverageVerification {
262
188
]
263
189
}
264
190
}
265
- }
191
+ }
0 commit comments