QueryDSL

QueryDSL의 장점 및 gradle-groovy의 적용 방법은 이 글에 정리해두었다.

위 글에서는 gradle-groovy 에서의 세팅 방법이었다.

이번 글에서는 gradle-kotlin 에서 세팅하는 방법을 정리해두려 한다.


gradle-kotlin에서 QueryDSL 적용

gradle-groovy 와 gradle-kotlin 은 문법이 많이 달라서 바꿔서 적용하느라 고생을 꽤 했다.

그래도 한번 정리해두면 두고두고 쓸 수 있을것 같다.

build.gradle.kts 

build.gradle.kts의 전문은 아래와 같다.

plugins {
   java
   id("org.springframework.boot") version "3.3.0"
   id("io.spring.dependency-management") version "1.1.5"
}

group = "com.example"
version = "0.0.1-SNAPSHOT"
val queryDslVersion = "5.0.0" // QueryDSL Version 설정

java {
   toolchain {
      languageVersion = JavaLanguageVersion.of(17)
   }
}

configurations {
   compileOnly {
      extendsFrom(configurations.annotationProcessor.get())
   }
}

repositories {
   mavenCentral()
}

dependencies {

  ...

   // QueryDSL 의존성 추가
   implementation("com.querydsl:querydsl-jpa:${queryDslVersion}:jakarta")
   implementation ("com.querydsl:querydsl-core")
   implementation ("com.querydsl:querydsl-collections")
   annotationProcessor("com.querydsl:querydsl-apt:${queryDslVersion}:jakarta")
   annotationProcessor("jakarta.annotation:jakarta.annotation-api")
   annotationProcessor("jakarta.persistence:jakarta.persistence-api")
   
   ...
}

tasks.withType<Test> {
   useJUnitPlatform()
}

``` 설정 추가 시작
val querydslDir = layout.buildDirectory.dir("generated/querydsl").get().asFile

sourceSets.getByName("main") {
   java.srcDir(querydslDir)
}

tasks.withType<JavaCompile> {
   options.generatedSourceOutputDirectory.set(file(querydslDir))
}

// clean 이후에 querydsl 폴더를 지움
tasks.named("clean") {
   doLast {
      file(querydslDir).delete()
   }
}
``` 설정 추가 끝

'백엔드 > 연습' 카테고리의 다른 글

Spring Boot Actuator 써보기  (0) 2024.06.05
EasyRandom 라이브러리 사용해보기  (0) 2024.05.23
포트원 API 사용해보기  (0) 2024.04.04
plain-jar 파일 생성 방지  (0) 2024.01.16
JWT 발급해보기  (0) 2023.10.04

+ Recent posts