web-dev-qa-db-ja.com

Java 11 + QueryDSL 4 + Gradle 5 + SpringBoot 2.1- QClassesを生成しない

タイトルのバージョンにQueryDSL、Gradle、Springbootを統合しようとしています。 GradleにannotationProcessorsを追加しましたが、IntellijはまだQClassesを生成していません。コミュニティからの提案で、プラグイン「gradle.plugin.com.ewerk.gradle.plugins:querydsl-plugin」を使用してみましたが、これは役に立ちませんでした。

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

私はあなたに私の働く設定を与えます:

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}"
}

Gradle 5.2+を使用

4
TecHunter

具体的な注釈プロセッサを提供する必要があります':jpa'

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

それはうまくいくはずです:

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はGradle 5では機能しません。詳細については、 この他の質問 および プラグインの問題 を確認してください。

リンクされた質問にあるような回避策でうまく動作するようにした人もいるようですが、それは私の場合ではありませんでした。私のチームは結局HQLを使用することに頼らなければなりませんでした。

0
Ernani