Я пытаюсь добавить querydsl в существующую систему, но у меня проблема с получением сгенерированного Q-источника для компиляции. Я прочитал несколько похожих проблем и объяснений (https://spring.io/blog/2015/09/04/what-s-new-in-spring-data-release-gosling#querydsl-web-support, https://blog.jdriven.com/2018/10/using-querydsl-annotation-processor-with-gradle-and-intellij-idea/ (даже если это связано с идеей)), почти каждый вопрос переполнения стека для querydsl ...
Вот часть моего build.gradle, которая описывает, в чем проблема:
ext {
...
querydslVersion = '4.2.1'
}
sourceSets {
generated {
java {
srcDirs = [ 'build/generated' ]
}
}
main {
java {
srcDirs = [ 'src/main/java' ]
}
}
}
...
dependencies {
...
compile("com.querydsl:querydsl-core:${querydslVersion}")
compile("com.querydsl:querydsl-jpa:${querydslVersion}")
compile "com.querydsl:querydsl-apt:$querydslVersion:jpa"
compileOnly group: 'org.projectlombok', name: 'lombok'
annotationProcessor(
"com.querydsl:querydsl-apt:${querydslVersion}:jpa",
"org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final",
"javax.annotation:javax.annotation-api:1.3.2",
"org.projectlombok:lombok"
)
}
Когда я пытаюсь собрать, я получаю ошибку: cannot find symbol QuerydslBinderCustomizer<QSample>
в классе репозитория. QSample.java генерируется в соответствии с образцом модели и располагается в
/ сборки / генерироваться / источники / annotationProcessor / Java / главная / ком / приготовительный / WS / модель / QSample.java.
Поскольку это находится в папке сборки, я запутался, почему это не видно для IDE и gradle.
Я не уверен, что я делаю неправильно.