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
를 줌으로써 해결했다
다음 스택오버플로도 참고할만함