web-dev-qa-db-fra.com

Java 11 + QueryDSL 4 + Gradle 5 + SpringBoot 2.1 - ne génère pas de QClasses

J'essaie d'intégrer QueryDSL, Gradle et Springboot dans les versions du titre. J'ai ajouté annotationProcessors à gradle mais Intellij ne génère toujours pas les QClasses. J'ai essayé des suggestions de la communauté pour utiliser le plugin "gradle.plugin.com.ewerk.gradle.plugins: querydsl-plugin" mais cela n'a pas aidé.

dependencies{
   annotationProcessor("org.projectlombok:lombok:1.18.4")
   annotationProcessor("com.querydsl:querydsl-apt:4.2.1")
   annotationProcessor("org.springframework.boot:spring-boot-starter-data-jpa:2.1.1.RELEASE")

   compileOnly("org.projectlombok:lombok:1.18.4")
   implementation("com.querydsl:querydsl-jpa:4.2.1")
   implementation("com.querydsl:querydsl-apt:4.2.1:jpa")
   implementation("org.springframework.boot:spring-boot-starter-data-jpa:2.1.1.RELEASE")
   implementation("org.springframework.boot:spring-boot-starter-web:2.1.1.RELEASE")
}
8
Siwy

Je vais vous donner ma configuration de travail:

ext {
    queryDslVersion = '4.2.1'
    lombokVersion = '1.8.6'
}
// https://stackoverflow.com/questions/42441844/annotation-processor-in-intellij-and-gradle/54611475#54611475
compileJava {
    options.annotationProcessorPath = configurations.annotationProcessor
}

dependencies {
  // ...

    compile(
            "com.querydsl:querydsl-core:${queryDslVersion}",
            "com.querydsl:querydsl-jpa:${queryDslVersion}"
    )

    compileOnly "org.projectlombok:lombok:${lombokVersion}"

    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:${lombokVersion}"
}

en utilisant Gradle 5.2 +

4
TecHunter

Vous devez fournir un processeur d'annotation concret ': jpa'

annotationProcessor("com.querydsl:querydsl-apt:4.2.1:jpa")

cela devrait fonctionner:

dependencies{
   annotationProcessor("org.projectlombok:lombok:1.18.4")
   annotationProcessor("com.querydsl:querydsl-apt:4.2.1:jpa")
   annotationProcessor("org.springframework.boot:spring-boot-starter-data-jpa:2.1.1.RELEASE")

   compileOnly("org.projectlombok:lombok:1.18.4")
   implementation("com.querydsl:querydsl-jpa:4.2.1")
   implementation("org.springframework.boot:spring-boot-starter-data-jpa:2.1.1.RELEASE")
   implementation("org.springframework.boot:spring-boot-starter-web:2.1.1.RELEASE")
}
3
jtomaszk

QueryDSL ne fonctionne pas avec Gradle 5. Vous pouvez vérifier cette autre question et problèmes de plug-in pour plus d'informations.

Il semble que certaines personnes aient réussi à le faire fonctionner avec des solutions de contournement telles que celles de la question liée, mais cela n'a pas été mon cas. Mon équipe a finalement dû utiliser HQL.

0
Ernani