[Querydsl 빌드 오류 해결] Unable to load class ‘com.mysema.codegen.model.Type

Updated:

Querydsl 적용 환경

  • 스프링 부트 : 2.6.3
  • Querydsl : 5.0

compileQuerydsl failed

QueryDSL을 사용하기 위해 build.gradle에 설정 코드를 추가해 주었으나 compileQuerydsl을 빌드하는 과정에서 오류가 발생하였습니다.

스크린샷 2022-05-10 오후 7.58.57.png

해당 문제는 스프링 부트 2.6부터는 Querydsl 5.0을 지원하며 5.0은 이전 버전의 설정을 조금 수정해줘야 했습니다.

다음과 같이 build.gradle 파일을 수정해 주었습니다.

buildscript {
	ext {
		queryDslVersion = "5.0.0"
	}
}

plugins {
	id 'org.springframework.boot' version '2.6.3'
	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
	//querydsl 추가
	id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
	id 'java'
}

group = 'promisor'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'mysql:mysql-connector-java'
	...

	//querydsl 추가
	implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
	annotationProcessor "com.querydsl:querydsl-apt:${queryDslVersion}"
	
	...
}

def querydslDir = "$buildDir/generated/querydsl"
querydsl {
	jpa = true
	querydslSourcesDir = querydslDir
}
sourceSets {
	main.java.srcDir querydslDir
}
configurations {
	querydsl.extendsFrom compileClasspath
}
compileQuerydsl {
	options.annotationProcessorPath = configurations.querydsl
}

인텔리제이의 오른쪽에 위치한 Gradle 을 클릭한 다음 othercompileQuerydsl 을 눌러서 빌드를 시작해 주었습니다.

스크린샷 2022-05-11 오전 12.10.13.png

다음과 같이 빌드가 성공적으로 완료되었다는 메시지가 출력된것을 확인할 수 있었습니다.

스크린샷 2022-05-11 오전 12.12.22.png

build/generated 경로에 querydsl 모듈이 생성된 것을 최종적으로 확인할 수 있었습니다.

Leave a comment