개요
SpringBoot 2.7.12 버전에 QueryDSL 디펜더시를 추가한 후 QClass 생성을 위해 compileQuerydsl 명령을 호출하니 아래와 같은 에러가 발생했습니다.
QueryDSL Unable to load class 'com.mysema.codegen.model.Type'
External Libraries에 추가된 라이브러리 목록은 아래와 같습니다.
원인
SpringBoot 2.6.X 버전 이상부터는 build.gradle에 QueryDSL 버전을 직접 명시해야 하고, querydsl-jpa 및 querydsl-apt를 추가하도록 변경이 되었습니다.
해결 방법
아래 build.gradle 파일과 같이 querydsl 세팅을 변경하면 정상적으로 compileQuerydsl 명령이 실행됩니다.
buildscript {
ext {
queryDslVersion = "5.0.0"
}
}
plugins {
id 'java'
id 'org.springframework.boot' version '2.7.12'
id 'io.spring.dependency-management' version '1.1.0'
//querydsl 추가
id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
}
group = 'com.tistory.jaimemin'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '1.8'
}
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}"
annotationProcessor "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"
querydsl {
jpa = true
querydslSourcesDir = querydslDir
}
sourceSets {
main.java.srcDir querydslDir
}
configurations {
querydsl.extendsFrom compileClasspath
}
compileQuerydsl {
options.annotationProcessorPath = configurations.querydsl
}
//querydsl 추가 끝
참고
실전! Querydsl - 김영한 강사님
반응형
'[DEV] 기록' 카테고리의 다른 글
[Spring Batch] ForbiddenClassException (1) | 2023.07.26 |
---|---|
[Java] Long, Integer 값 비교는 ==이 아닌 equals로 해야하는 이유 (2) | 2023.06.23 |
[ssh] WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! (0) | 2023.06.20 |
[Jenkins] 플러그인 설치 에러 (0) | 2023.06.12 |
[VirtualBox] 윈도우에서 VirtualBox putty로 접속하는 방법 (0) | 2023.05.19 |