티스토리 뷰

반응형

 

 

 

Intellij에서 gradle을 이용하여 프로젝트에 Querydsl 라이브러리를 추가하고,

Q파일을 생성하는 방법에 대해 알아보겠습니다.

 

1. build.gradle 에서 querydsl 추가하기

 

프로젝트를 생성시 언어는 Java 11 디펜던시는 Spring Web, Spring Data JPA, Lombok 그리고 H2 Database를 추가해 놓은 상태이며, build.gradle의 초기 설정은 아래와 같습니다.


plugins {
	id 'org.springframework.boot' version '2.6.4'
	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
	id 'java'
}

group = 'study'
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-web'
	compileOnly 'org.projectlombok:lombok'
	runtimeOnly 'com.h2database:h2'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
	useJUnitPlatform()
}

 

위의 build.gradle 파일에서 아래와 같이 querydsl설정에 필요한 코드를 추가하고 변경된 코드를 Load시켜 줍시다.

(바뀐 부분은 ( QueryDSL )로 주석처리를 해두었습니다.)

// --------------------- ( QueryDSL ) ---------------------
// 라이브러리 버전 명시
buildscript {
	ext {
		queryDslVersion = "5.0.0"
	}
}
// --------------------------------------------------------

plugins {
	id 'org.springframework.boot' version '2.6.4'
	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
	
    // --------------------- ( QueryDSL ) ---------------------
	id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
    
	id 'java'
}

group = 'study'
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-web'
	
    // --------------------- ( QueryDSL ) ---------------------
	implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
	implementation "com.querydsl:querydsl-apt:${queryDslVersion}"
    // --------------------------------------------------------

	compileOnly 'org.projectlombok:lombok'
	runtimeOnly 'com.h2database:h2'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
    
}

tasks.named('test') {
	useJUnitPlatform()
}

// ---------------------------- ( QueryDSL ) ----------------------------
def querydslDir = "$buildDir/generated/querydsl" // Q파일 생성 위치 설정

querydsl {
	jpa = true
	querydslSourcesDir = querydslDir
}
sourceSets {
	main.java.srcDir querydslDir
}

configurations {
	querydsl.extendsFrom compileClasspath
}

compileQuerydsl{
	options.annotationProcessorPath = configurations.querydsl
}

// ---------------------------------------------------------------------

 

 

2. Q파일 생성하기

Q파일을 생성하려면 먼저 엔티티를 만들어 주어야 합니다.

테스트용으로 아래와 같은 간단한 엔티티를 만들어 봤습니다.

@Entity
@Getter @Setter
public class Hello {

    @Id @GeneratedValue
    private Long id;

}

 

이제 Gradle 탭을 열고 querydsl > Tasks > other > compileQuerydsl 을 실행시켜 줍시다.

 

 

build.gradle에서 설정한 대로 generated/querydsl 하위 경로에 Q파일이 생성되었습니다.

 

 

 

3. Q파일 추가로 생성하기

위의 build.gradle 설정 대로라면 엔티티를 추가로 작성한 후 프로젝트를 다시 빌드해도 Q파일이 생성되지 않습니다.

이 때에는 아래의 그림에서 보이는 것과 같이 Gradle탭에서 querydsl > Tasks > build > clean 을 한번 실행하고

위에서 사용했던 compileQuerydsl을 다시 실행시켜 주면 새로운 Q파일을 생성할 수 있습니다.

 

 

 

 

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함