인프런 커뮤니티 질문&답변

fe00045님의 프로필 이미지

작성한 질문수

실전! Querydsl

compileQuerydsl 오류

작성

·

24K

7

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
안녕하세요 강의를 처음 듣고 있는 학생입니다
 
강의 영상에서와 같이 프로젝트를 만든후 compileQueryDsl을 실행하니
 
Unable to load class 'com.mysema.codegen.model.Type'.
 
이 에러가 나오면서 컴파일이 되지 않습니다 도저히 답을 찾을 수가 없어서 질문남겨요

답변 6

71

동일한 오류 발생해서 해결한 뒤에 댓글 남겨봅니다!

하단에 설정 방법 공유드립니다.

좋은 하루 되세요!

 

[설정]

buildscript {
ext {
queryDslVersion = "5.0.0"
}
}

plugins {
id 'org.springframework.boot' version '2.6.0'
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'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.h2database:h2'
//querydsl 추가
implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
implementation "com.querydsl:querydsl-apt:${queryDslVersion}"


annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

test {
useJUnitPlatform()
}

//querydsl 추가 시작
def querydslDir = "$buildDir/generated/querydsl"

querydsl {
jpa = true
querydslSourcesDir = querydslDir
}
sourceSets {
main.java.srcDir querydslDir
}
compileQuerydsl{
options.annotationProcessorPath = configurations.querydsl
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
querydsl.extendsFrom compileClasspath
}
//querydsl 추가 끝

감사합니다!

감사합니다

이런 정보는 어디서 보는건가요 ??? 이런 설정 부분이요

감사합니다!

너무 감사합니다..ㅠㅠ

감사합니다!!

감사합니다!

감사합니다. 덕분에 해결했습니다 ㅠ

감사합니다. 덕분에 해결했어요.

감사합니다 덕분에 해결했어요 ㅠㅠ

8

김영한님의 프로필 이미지
김영한
지식공유자

스프링 부트 2.6 이상, Querydsl 5.0 지원 방법을 메뉴얼에 마지막에 추가해두었습니다.

다음 링크에서 업데이트된 메뉴얼을 받아주세요.

https://www.inflearn.com/course/Querydsl-%EC%8B%A4%EC%A0%84/lecture/30112?tab=curriculum

감사합니다.

 

 

7

혹시나 도움될까 올려봅니다.

gradle 5.0 이상부터는 해당 옵션을 넣어줘야 한다고 해서(https://kangwoojin.github.io/programing/query-dsl-setting/)

이렇게 부분 수정 했더니 됩니다.

 

//querydsl 추가 시작
def querydslDir = "$buildDir/generated/querydsl"

querydsl {
jpa = true
querydslSourcesDir = querydslDir
}
sourceSets {
main.java.srcDir querydslDir
}
compileQuerydsl{
options.annotationProcessorPath = configurations.querydsl
}

configurations {
compileOnly {
extendsFrom annotationProcessor
}
querydsl.extendsFrom compileClasspath
}
//querydsl 추가 끝

3

김영한님의 프로필 이미지
김영한
지식공유자

도움 주신 분들 모두 감사합니다.

fe00045님 댓글 남겨주신 분들 참고해서 진행 부탁드려요^^

0

저도 같은 문제로 고생을 좀 했는데, 아래 글에서 설정 항목마다 이유를 포함하여 자세히 설명해줍니다.

이 글에서는 com.ewerk.gradle.plugins.querydsl 플러그인을 걷어내는 방법까지도 설명을 해주고 있습니다.

(2년간 업데이트가 없는 프로젝트가 그레이들의 발전을 따라가지 못해 설정이 계속 추가되어야 하는 것이 마음에 안 들어 걷어내겠다고 생각하셨다네요.)

http://honeymon.io/tech/2020/07/09/gradle-annotation-processor-with-querydsl.html

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. fe00045님

전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx

 

주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요

 

추가로 다음 내용도 코멘트 부탁드립니다.

1. 실행 방법을 알려주세요.

2. 어떻게 문제를 확인할 수 있는지 자세한 설명을 남겨주세요.

감사합니다.

fe00045님의 프로필 이미지
fe00045
질문자

https://drive.google.com/file/d/1lMD7eP9XEyibWu9YsJsJm-uZjCvARZKv/view?usp=sharing

 

제 프로젝트 파일은 이겁니다.

강의에서와 같이 gradle - other - compileQuerydsl 실행하니 

 

Unable to load class 'com.mysema.codegen.model.Type'.

 

This is an unexpected error. Please file a bug containing the idea.log file.

 

오류가 나옵니다

 

일단은 강사님이 올려주신 강의자료에서의 build.gradle을 완전 복사붙여넣기 하니 잘 실행은 되서 수강하는데 문제점은 없으나 최신 스프링부트 버전에서는 실행이 안되는거같습니다.

fe00045님의 프로필 이미지

작성한 질문수

질문하기