관리 메뉴

취미개발 블로그와 마음수양

intellij QueryDSL 설정 본문

FrameWork_ETC/JPA_Hibernate

intellij QueryDSL 설정

아라한사 2017. 9. 21. 18:45

그래들과 인텔리제이 환경에서 QueryDSL 설정을 하면서 


보통 querydsl 라이브러리를  임포트하면서 :apt 형태를 해주면 자동으로 세팅을 해주고는 하는데

이상하게 터미널 환경에서 하면 되는데 인텔리제이 환경에서 하면 안될 때가 있다... 


보통 온갖 옵션에서 Content root 를 정하는 방식 등등이 있긴한데.. 

차라리 직접 Task 를 정해서 하는게 훨씬 나을 때가 있다...



가끔 인텔리제이가 꼬이면.. 자동화된 방식이 어떤 폴더에 어떻게 generate 하는지 잘 모르겄다.. =ㅅ=;
이상하게 폴더에 클래스들이 안 생김..


나같은 경우는 
http://sai.world/?p=237 를 참고하여

다음의 소스를 적었다. 해보니 된다.


task generateQueryDSL(type: JavaCompile, group: 'build') {
source = sourceSets.main.java
classpath = configurations.compile
options.compilerArgs = [
"-proc:only",
"-processor", "com.querydsl.apt.jpa.JPAAnnotationProcessor"
]
destinationDir = file('./src/main/generated')
}


추가 설명 


gradle build 할 때 같은 에러가 발생하는 경우가 있다.

https://stackoverflow.com/questions/57391939/gradle-5-querydsl-generating-duplicate-classes
https://docs.gradle.org/current/dsl/org.gradle.api.tasks.compile.CompileOptions.html#org.gradle.api.tasks.compile.CompileOptions:annotationProcessorGeneratedSourcesDirectory


여기를 보고서 해결하였는데 compileJava 안에 


options.annotationProcessorPath = configurations.querydsl

를 줌으로써 해결했다


다음 스택오버플로도 참고할만함

https://stackoverflow.com/questions/53913274/querydsl-annotation-processor-issue-after-upgrade-to-gradle-5