1- import org.apache.tools.ant.filters.ReplaceTokens
2-
3- buildscript {
4- ext {
5- springBootVer = ' 2.4.5'
6- querydslVer = ' 4.4.0'
7- querydslPluginVer = ' 1.0.10'
8- springDependencyMgmtVer = ' 1.0.11'
9- springLoadedVer = ' 1.2.8'
10- // nodePluginVer 제거됨
11- }
12- repositories {
13- mavenCentral()
14- }
15- dependencies {
16- classpath " org.springframework.boot:spring-boot-gradle-plugin:${ springBootVer} "
17- classpath " io.spring.gradle:dependency-management-plugin:${ springDependencyMgmtVer} .RELEASE"
18- classpath " org.springframework:springloaded:${ springLoadedVer} .RELEASE"
19- // node-gradle 플러그인 classpath 제거됨
20- }
21- }
22-
231plugins {
242 id ' java'
25- id ' idea'
26- id ' org.springframework.boot' version " ${ springBootVer} "
3+ id ' org.springframework.boot' version ' 3.4.5'
4+ id ' io.spring.dependency-management' version ' 1.1.7'
5+ id ' jacoco'
276}
287
29- apply plugin : ' io.spring.dependency-management '
30- apply plugin : ' eclipse '
8+ group = ' com.ssafy '
9+ version = ' 0.0.1-SNAPSHOT '
3110
32- repositories {
33- mavenCentral()
34- maven { url ' https://repo.spring.io/snapshot' }
35- maven { url ' https://repo.spring.io/milestone' }
36- maven { url " https://repo.spring.io/libs-release" }
37- maven { url " https://repo.maven.apache.org/maven2" }
38- maven { url " https://build.shibboleth.net/nexus/content/repositories/releases" }
11+ java {
12+ toolchain {
13+ languageVersion = JavaLanguageVersion . of(17 )
14+ }
3915}
4016
41- group ' com.ssafy'
42- version ' 1.0-SNAPSHOT'
43- sourceCompatibility = ' 1.8'
44-
4517configurations {
46- providedRuntime
18+ compileOnly {
19+ extendsFrom annotationProcessor
20+ }
4721}
4822
49- def buildTime () {
50- def date = new Date ()
51- def formattedDate = date. format(' yyyyMMdd_HHmm' )
52- return formattedDate
23+ repositories {
24+ mavenCentral()
5325}
5426
55- project. ext. set(" build.date" , buildTime())
56-
57- processResources {
58- duplicatesStrategy = DuplicatesStrategy . EXCLUDE
59- with copySpec {
60- from " src/main/resources"
61- include " **/application*.yml"
62- include " **/application*.yaml"
63- include " **/application*.properties"
64- project. properties. findAll(). each {
65- prop ->
66- if (prop. value != null ) {
67- filter(ReplaceTokens , tokens : [ (prop. key): String . valueOf(prop. value)])
68- filter(ReplaceTokens , tokens : [ (' project.' + prop. key): String . valueOf(prop. value)])
69- filter(ReplaceTokens , tokens : [ (' project.ext.' + prop. key): String . valueOf(prop. value)])
70- }
71- }
72- }
27+ dependencies {
28+ implementation ' org.springframework.boot:spring-boot-starter-security'
29+ implementation ' org.springframework.boot:spring-boot-starter-web'
30+ implementation ' org.springframework.boot:spring-boot-starter-data-jpa' // JPA 추가
31+ implementation ' org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.4'
32+
33+ // QueryDSL - Spring Boot 3.x 호환 버전
34+ implementation ' com.querydsl:querydsl-jpa:5.1.0:jakarta'
35+ annotationProcessor ' com.querydsl:querydsl-apt:5.1.0:jakarta'
36+ annotationProcessor ' jakarta.annotation:jakarta.annotation-api'
37+ annotationProcessor ' jakarta.persistence:jakarta.persistence-api'
38+
39+ // AWS
40+ implementation ' software.amazon.awssdk:s3:2.20.123'
41+ implementation ' software.amazon.awssdk:ec2:2.20.123'
42+ implementation ' org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'
43+ implementation ' com.amazonaws:aws-java-sdk-s3:1.12.395'
44+
45+ // 기타
46+ implementation ' org.springframework.boot:spring-boot-starter-webflux'
47+ implementation ' org.apache.pdfbox:pdfbox:2.0.27'
48+
49+ compileOnly ' org.projectlombok:lombok'
50+ developmentOnly ' org.springframework.boot:spring-boot-devtools'
51+ runtimeOnly ' com.mysql:mysql-connector-j'
52+ annotationProcessor ' org.projectlombok:lombok'
53+
54+ // 테스트
55+ testImplementation ' org.springframework.boot:spring-boot-starter-test'
56+ testImplementation ' org.mybatis.spring.boot:mybatis-spring-boot-starter-test:3.0.4'
57+ testImplementation ' org.springframework.security:spring-security-test'
58+ testRuntimeOnly ' org.junit.platform:junit-platform-launcher'
59+
60+ // 검증 및 JWT
61+ implementation ' org.springframework.boot:spring-boot-starter-validation'
62+ implementation ' io.jsonwebtoken:jjwt-api:0.11.5'
63+ runtimeOnly ' io.jsonwebtoken:jjwt-impl:0.11.5'
64+ runtimeOnly ' io.jsonwebtoken:jjwt-jackson:0.11.5'
7365}
7466
75- // QueryDSL 관련 설정 (주석 처리된 IntelliJ 전용 부분은 유지하지 않음)
76-
77- /*
78- def querydslDir = 'src/main/generated'
79- querydsl {
80- library = "com.querydsl:querydsl-apt"
81- jpa = true
82- querydslSourcesDir = querydslDir
83- }
67+ // QueryDSL 설정
68+ def querydslDir = " src/main/generated"
8469
8570sourceSets {
86- main {
87- java {
88- srcDirs = ['src/main/java', querydslDir]
89- }
90- }
71+ main. java. srcDirs + = [querydslDir]
9172}
9273
93- compileQuerydsl {
94- options.annotationProcessorPath = configurations.querydsl
74+ tasks . withType( JavaCompile ) {
75+ options. getGeneratedSourceOutputDirectory() . set(file(querydslDir))
9576}
9677
97- configurations {
98- querydsl.extendsFrom compileClasspath
78+ clean . doLast {
79+ delete file(querydslDir)
9980}
100- */
10181
102- dependencies {
103- implementation(" org.springframework.boot:spring-boot-starter-web" )
104- implementation(" org.springframework.boot:spring-boot-starter-websocket" )
105- implementation(" org.springframework.boot:spring-boot-starter-security" )
106- implementation(" org.springframework.boot:spring-boot-starter-data-jpa" )
107- implementation(" org.springframework.boot:spring-boot-starter-actuator" )
108- implementation(" org.springframework.plugin:spring-plugin-core:2.0.0.RELEASE" )
109- testImplementation(" org.springframework.security:spring-security-test" )
110- annotationProcessor(" org.springframework.boot:spring-boot-starter-data-jpa" )
111- runtimeOnly(" mysql:mysql-connector-java" )
112- developmentOnly(" org.springframework.boot:spring-boot-devtools" )
113- annotationProcessor(" org.springframework.boot:spring-boot-configuration-processor" )
114-
115- implementation(' commons-io:commons-io:2.6' )
116- implementation(" org.apache.commons:commons-collections4:4.4" )
117- implementation(" org.apache.commons:commons-lang3:3.9" )
118-
119- implementation(" com.querydsl:querydsl-jpa:${ querydslVer} " )
120- implementation(" com.querydsl:querydsl-apt:${ querydslVer} " )
121-
122- implementation(" org.springframework.boot:spring-boot-starter-mustache" )
123- implementation(' org.webjars.bower:jquery:3.3.1' )
124- implementation(' org.webjars:sockjs-client:1.1.2' )
125- implementation(' org.webjars:stomp-websocket:2.3.3-1' )
126- implementation(' org.webjars:webjars-locator:0.30' )
127- implementation(' org.webjars.bower:webrtc-adapter:7.4.0' )
128- implementation(' org.kurento:kurento-client:6.16.0' )
129- implementation(' org.kurento:kurento-utils-js:6.15.0' )
130-
131- annotationProcessor(" com.querydsl:querydsl-apt:${ querydslVer} :jpa" )
132-
133- implementation(" com.squareup.retrofit2:retrofit:2.7.1" )
134- implementation(" com.squareup.retrofit2:converter-jackson:2.7.1" )
135- implementation(" com.squareup.okhttp3:logging-interceptor:3.9.0" )
136-
137- implementation(" com.google.guava:guava:29.0-jre" )
138- annotationProcessor(" com.google.guava:guava:29.0-jre" )
139-
140- testImplementation(" com.jayway.jsonpath:json-path:2.4.0" )
141-
142- implementation(" com.auth0:java-jwt:3.10.3" )
143-
144- implementation(" io.springfox:springfox-swagger2:3.0.0" )
145- implementation(" io.springfox:springfox-swagger-ui:3.0.0" )
146- implementation(" io.springfox:springfox-data-rest:3.0.0" )
147- implementation(" io.springfox:springfox-bean-validators:3.0.0" )
148- implementation(" io.springfox:springfox-boot-starter:3.0.0" )
149-
150- implementation(" javax.annotation:javax.annotation-api:1.2" )
151-
152- implementation(" org.projectlombok:lombok:1.18.20" )
153- annotationProcessor(" org.projectlombok:lombok:1.18.20" )
154-
155- testImplementation(' org.springframework.boot:spring-boot-starter-test' )
156- }
157-
158- test {
82+ tasks. named(' test' ) {
15983 useJUnitPlatform()
160- }
161-
162- // JAR 설정 (중요!)
163- jar {
164- enabled = false
165- }
166-
167- bootJar {
168- enabled = true
169- archiveFileName = " ${ project.name} -${ project.version} .jar"
170- }
84+ }
0 commit comments