일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 항해99
- auto.create.topics.enable
- System.in
- annotation processor
- 제네릭 타입
- 바운디드 타입
- 자바할래
- throwable
- junit 5
- 스파르타코딩클럽
- 프리미티브 타입
- 람다식
- System.err
- 브릿지 메소드
- 접근지시자
- raw 타입
- 합병 정렬
- 자바스터디
- docker
- 익명 클래스
- 로컬 클래스
- Switch Expressions
- 함수형 인터페이스
- 상속
- System.out
- yield
- github api
- Study Halle
- 제네릭 와일드 카드
- 정렬
Archives
- Today
- Total
코딩하는 털보
QueryDsl cannot find symbol 본문
QueryDSL 적용후 빌드에서 아래와 같은 에러 발생
/Users/E8L-20220010/IdeaProjects/dataIngest/agentManager/build/generated/querydsl/kr/co/e8ight/ndxpro/agentManager/domain/QAgentHistory.java:39: error: cannot find symbol
public QAgentHistory(Path<? extends AgentHistory> path) {
^
symbol: class AgentHistory
location: class QAgentHistory
gradle build task는 여러 task를 통해 실행되는데 (compile, bootJar, jar, test 등등)
구글링 해본 사람들은 아래와 같이 buildscript를 등록할 것이기 때문에 build과정에 querydsl 관련 task가 자동으로 추가된다.
buildscript {
ext {
queryDslVersion = "5.0.0"
}
}
추가되는 task는 compileQuerydsl 이며 compileJava 이전에 실행된다.
문제는 이전에 생성되어있던 Qclass들이 compileQuerydsl을 방해하는 것으로 보인다.
이렇게 생각한 이유는 clean task로 build 디렉토리를 삭제하거나 Qclass를 삭제하거나 cleanQuerydslSourcesDir을 먼저 실행하는 경우 문제없이 잘 되기 때문.
그래서 compileQuerydsl이 동작하기 전에 이전에 생성했던 Qclass들을 제거하고 새로 생성할 수 있도록 cleanQuerydslSourcesDir task가 먼저 실행되도록 했다.
compileQuerydsl {
dependsOn(cleanQuerydslSourcesDir)
options.annotationProcessorPath = configurations.querydsl
}
이렇게 하면 문제는 해결된다만 이전의 Qclass들이 왜 문제가 되는지는 모르겠다.
Comments