기존의 코드를 리팩토링하기 위해 새로운 프로젝트를 만들며 기존의 스프링 버전에서 최신 스프링 버전 3.1.0으로 업데이트하며 Querydsl 관련된 설정 오류를 맞이하였다.
execution failed for task ':compileQuerydsl'. java lang noclassdefFoundError javax/ersistence/entity
Querydsl 설정 문제로 보인다.
스프링 3.x에서는 Querydsl 설정이 기존에 사용했던 2.x 대와는 달라졌다.
위의 문제를 해결하기 위해 이것저것 검색해서 결과적으로는 동작하는 설정으로 만들 수 있었다.
plugins {
id 'java'
id 'org.springframework.boot' version '3.1.0'
id 'io.spring.dependency-management' version '1.1.0'
}
group = 'team.needs'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
...
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"
...
}
tasks.named('test') {
useJUnitPlatform()
}
이전과 다르게 dependencies 부분에 jakarta 관련 설정을 추가하고 다음과 같이 build.gradle로 바꾸니 정상적으로 어플리케이션을 실행할 수 있었다.