티스토리 뷰
본 포스팅은 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발 강의를 참고하여 작성하였습니다.
소스 코드는 여기 있습니다. (commit hash: 37f3309)> git clone https://github.com/lcalmsky/spring-boot-app.git > git checkout 37f3309
ℹ️ squash merge를 사용해 기존 branch를 삭제하기로 하여 앞으로는 commit hash로 포스팅 시점의 소스 코드를 공유할 예정입니다.
Overview
앞으로 사용하게 될 querydsl을 설정합니다.
build.gradle 수정
plugins {
// 생략
id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'
}
// 생략
dependencies {
// 생략
implementation 'com.querydsl:querydsl-jpa'
// 생략
}
// 생략
def querydslDir = "$buildDir/generated/querydsl"
querydsl {
jpa = true
querydslSourcesDir = querydslDir
}
sourceSets {
main.java.srcDir querydslDir
}
configurations {
querydsl.extendsFrom compileClasspath
}
compileQuerydsl {
options.annotationProcessorPath = configurations.querydsl
}
plugins
, dependencies
에 querydsl
관련 항목을 추가하고 아래 쪽에 스크립트를 추가해주었습니다.
build.gradle 전체 보기
plugins {
id 'org.springframework.boot' version '2.5.4'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
id 'com.github.node-gradle.node' version '2.2.3'
id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'
}
group = 'io.lcalmsky'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
// spring
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.boot:spring-boot-starter-mail'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
implementation 'com.querydsl:querydsl-jpa'
// devtools
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
annotationProcessor 'org.projectlombok:lombok'
// db
runtimeOnly 'com.h2database:h2'
runtimeOnly 'org.postgresql:postgresql'
// test
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
testImplementation 'com.tngtech.archunit:archunit-junit5-api:0.23.1'
}
test {
useJUnitPlatform()
}
node {
version = '16.9.1'
download = true
nodeModulesDir = file("${projectDir}/src/main/resources/static")
}
task copyFrontLib(type: Copy) {
from "${projectDir}/src/main/resources/static"
into "${projectDir}/build/resources/main/static/."
}
copyFrontLib.dependsOn npmInstall
compileJava.dependsOn copyFrontLib
def querydslDir = "$buildDir/generated/querydsl"
querydsl {
jpa = true
querydslSourcesDir = querydslDir
}
sourceSets {
main.java.srcDir querydslDir
}
configurations {
querydsl.extendsFrom compileClasspath
}
compileQuerydsl {
options.annotationProcessorPath = configurations.querydsl
}
컴파일
아래 명령어를 수행하여 Q클래스들을 생성합니다.
./gradlew compileQuerydsl
IDE
를 사용하는 경우 gradle
탭에서 compileQuerydsl
을 수행하셔도 동일한 결과를 얻을 수 있습니다.
Q 클래스 확인
build.gradle
에 querydslDir
로 지정한 곳을 확인해보면 Entity
들이 모두 생성된 것을 확인할 수 있습니다.
build 디렉토리는 .gitignore 파일에 추가되어있으므로 git에 저장되지 않습니다.
git을 clone한 뒤 직접 다시 빌드해야 컴파일에러 없이 querydsl을 사용할 수 있습니다.
(아직은 querydsl을 이용해 코드를 작성하지 않았기 때문에 에러가 발생하지 않습니다.)
'SpringBoot > Web Application 만들기' 카테고리의 다른 글
스프링 부트 웹 애플리케이션 제작(63): 웹 알림 기능 구현 (0) | 2022.06.09 |
---|---|
스프링 부트 웹 애플리케이션 제작(62): 스터디 개설 알림 기능 구현 (0) | 2022.06.08 |
스프링 부트 웹 애플리케이션 제작(60): 알림 인프라 구축 (0) | 2022.06.06 |
스프링 부트 웹 애플리케이션 제작(59): 알림 도메인 설계 (0) | 2022.06.05 |
스프링 부트 웹 애플리케이션 제작(58): 테스트 리팩터링 (0) | 2022.06.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- intellij
- 함께 자라기
- 스프링 부트
- JSON
- 알고리즘
- Java
- spring boot application
- Spring Boot JPA
- Spring Boot Tutorial
- 스프링 부트 애플리케이션
- 스프링 부트 튜토리얼
- r
- proto3
- leetcode
- 스프링 부트 회원 가입
- Spring Data JPA
- 스프링부트
- Linux
- 스프링 데이터 jpa
- Jackson
- Spring Boot
- 클린 아키텍처
- 헥사고날 아키텍처
- gRPC
- JPA
- spring boot jwt
- 함께 자라기 후기
- QueryDSL
- spring boot app
- @ManyToOne
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함