build.gradle에 querydsl 추가하고나서 Application 실행이 실패합니다
1444
작성한 질문수 2
안녕하세요 강의 항상 잘 듣고 있습니다.
MVC 강의 부터 듣다가 최근에 회사에서 JPA 프로젝트를 진행 할 일이 있어서 작년에 결제해두었던 JPA 강의를 급하게 듣고 있습니다.
다름이 아니라 강의를 거의 다 듣고 querydsl 설정을 추가하고 나서 어플리케이션 실행했더니 실패하는 현상이 발생합니다.
build/generated/querydsl/ 이하경로에 파일도 잘 생성되었는데 lombok getter/setter와 관련된컴파일 에러 can,t not find symbol 가 발생하는 이유를 잘 모르겠습니다.
구글링해보나까 Lombok & Querydsl 같이 사용할때 발생할 수 있는 에러이고 아래와 같은 설정을 추가하면 해결될수 있다고 해서 추가해보았지만 해결되지 않아서 질문을 남깁니다.
project.afterEvaluate {
project.tasks.compileQuerydsl.options.compilerArgs = [
"-proc:only",
"-processor", project.querydsl.processors() +
',lombok.launch.AnnotationProcessorHider$AnnotationProcessor'

답변 1
1
안녕하세요. goodbyeyo2님
Querydsl 설정이 환경과 버전업 등에 영향을 많이 받습니다.
다음을 참고해서 진행해주세요.
plugins {
id 'org.springframework.boot' version '2.6.5'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
ext["hibernate.version"] = "5.6.5.Final"
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
//JdbcTemplate 추가
//implementation 'org.springframework.boot:spring-boot-starter-jdbc'
//MyBatis 추가
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'
//JPA, 스프링 데이터 JPA 추가
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
//Querydsl 추가
implementation 'com.querydsl:querydsl-jpa'
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
//H2 데이터베이스 추가
runtimeOnly 'com.h2database:h2'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
//테스트에서 lombok 사용
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
}
tasks.named('test') {
useJUnitPlatform()
}
//Querydsl 추가, 자동 생성된 Q클래스 gradle clean으로 제거
clean {
delete file('src/main/generated')
}
감사합니다.
강의 관련 외 질문입니다.
0
75
2
SpringBoot4 + Hibernate7 모듈 등록 방법 공유
1
95
1
BeanCreationException
0
94
3
Update 후 UpdateMemberResponse 매핑할 때
0
53
1
트랜잭션을 사용 안 할 때 커넥션은 언제 가져오나요?
0
102
2
페이징 + 검색조건 관련해서 질문드립니다.
0
74
1
Query Dsl Q파일 질문입니다.
0
86
1
루트 쿼리라는것은
0
62
1
메서드를 분리하는 기준
0
70
1
findAllWithMemberDelivery 메서드 질문드립니다.
0
115
3
연관관계 매핑을 안 쓸 경우, 사용해야 하는 전략
0
90
2
fetch join과 영속화와 OSIV의 관계
0
90
2
Distinct 사용 전 결과에 대한 의문
0
117
2
레포지토리 계층에서의 트랜잭션에 대한 의문
0
61
1
영속성 컨텍스트 생명주기의 신기한 부분이 있습니다.
0
79
2
dto 필드 속 엔티티 여부
0
62
1
뷰템플릿 사용 시
0
82
2
Result 클래스 관련 질문
0
56
1
@PostConstruct 프록시 관련 질문드립니다
0
87
1
DTO 대신 Form 사용은 안되나요?
0
140
1
OSIV ON 상태일 때
0
99
1
fetch join VS fetch join 페이징 궁금증
0
189
2
양방향 연관관계 알아보는 법?
0
108
1
16강 17강 간단 정리 이게 맞을까요 ?
0
168
2





