본문 바로가기
Back-end/Spring

[QueryDsl 5.0] spring boot 3.0 gradle 설정 및 Qclass 만들기

by sky-j 2023. 10. 26.
반응형

spring boot 3.0, QueryDsl 5.0 에서 Gradle 설정 

buildscript {
	ext {
		queryDslVersion = '5.0.0'
	}
}
plugins {
	id 'java'
	id 'org.springframework.boot' version '3.0.2'
	id 'io.spring.dependency-management' version '1.1.0'
	// Add this for the querydsl plugin
	id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
}
group = 'com.sky'
version = '0.0.1-SNAPSHOT'

java {
	sourceCompatibility = '17'
}

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}


repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-security'
	implementation 'javax.persistence:javax.persistence-api:2.2'

	// MariaDB
	runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'

	// lombok
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.projectlombok:lombok'
	testAnnotationProcessor 'org.projectlombok:lombok'
	// QueryDsl
	implementation "com.querydsl:querydsl-jpa:5.0.0:jakarta"
	annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
	annotationProcessor "jakarta.annotation:jakarta.annotation-api"
	annotationProcessor "jakarta.persistence:jakarta.persistence-api"
}

//querydsl configuration
def querydslDir = "${layout.buildDirectory.get().asFile}/generated/querydsl"

querydsl {
	jpa = true
	querydslSourcesDir = querydslDir
}

sourceSets {
	main.java.srcDir querydslDir
}

configurations {
	querydsl.extendsFrom compileClasspath
}

compileQuerydsl {
	options.annotationProcessorPath = configurations.querydsl
}

이틀 동안 헤매다가 겨우 설정 했습니다. 이대로 작성하시고

compileQueryDsl

complieQueryDsl 실행하시면

Qclass file

build/generated 밑에 생성 됩니다.

반응형