프로젝트는 Spring initializer을 이용하여 제너레이트 하였다 글을 쓰고있는 현재 프로젝트 세팅이 끝난 후이기 때문에 따로 캡쳐를 하지 않았다.
특이점이 있다면 QueryDsl을 사용하기 최적화 하기 위하여 이니셜라이저에서 제공하는 스프링 버전보다 더 낮게 설정하였다.
스프링 버전은 2.6.11
다음은 프로젝트 라이브러리 관련 build.Gradle이다.
buildscript {
ext {
queryDslVersion = "5.0.0"
}
}
plugins {
id 'java'
id 'org.springframework.boot' version '2.6.11'
id 'io.spring.dependency-management' version '1.0.15.RELEASE'
//querydsl 추가
id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
}
group = 'com.project'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.3.0'
implementation group: 'org.springframework.cloud', name: 'spring-cloud-starter-aws', version: '2.2.5.RELEASE'
//querydsl 추가
implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
annotationProcessor "com.querydsl:querydsl-apt:${queryDslVersion}"
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.h2database:h2'
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
//querydsl 추가 시작
def querydslDir = "$buildDir/generated/querydsl"
querydsl {
jpa = true
querydslSourcesDir = querydslDir
}
sourceSets {
main.java.srcDir querydslDir
}
configurations {
querydsl.extendsFrom compileClasspath
}
compileQuerydsl {
options.annotationProcessorPath = configurations.querydsl
}
//querydsl 추가 끝
사실 뭐 디펜던시만 고르고 add하면 이니셜라이저에서 알아서 implements하기때문에 특별히 신경쓸건 없지만 querydsl과 aws는 예외다. 이건 이니셜라이저에서 해주지 않기때문에 직접설정하였다.
다행히 나는 Jpa와 querydsl 온라인 강의를 수강한 경험이 있어 레퍼런스 할 자료를 가지고있었다. 요즘 jpa강의는 인프런의 그분이 워낙 핫해서 어떤 강의인지는 너무 뻔하다.
implementation group: 'org.springframework.cloud', name: 'spring-cloud-starter-aws', version: '2.2.5.RELEASE'
이부분은 aws 파일서버를 위해 세팅하였다. 이번 프로젝트에서는 이미지정도만 파일서버에 저장할 것 같다.
다음 시간에는 본격적으로 프로젝트와 db연동 및 기타 properties세팅을 해야겠다.
'Project > MangoPlate Clone' 카테고리의 다른 글
공통컴포넌트 및 유틸 (0) | 2023.02.14 |
---|---|
JPA Setting 및 Test (0) | 2023.02.14 |
MyBatis Setting 및 Test (0) | 2023.02.14 |
Project Detail Setting (0) | 2023.02.14 |
MangoPlate Clone Project (0) | 2023.02.14 |