Java 11 + QueryDSL 4 + Gradle 5 + SpringBoot 2.1- 不生成 QClasses

Siw*_*iwy 12 gradle lombok querydsl spring-boot

我正在尝试将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")
}
Run Code Online (Sandbox Code Playgroud)

jto*_*szk 8

您需要提供具体的注释处理器':jpa'

annotationProcessor("com.querydsl:querydsl-apt:4.2.1:jpa")
Run Code Online (Sandbox Code Playgroud)

这应该有效:

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")
}
Run Code Online (Sandbox Code Playgroud)


Tec*_*ter 8

我会给你我的工作配置:

ext {
    queryDslVersion = '4.2.1'
    lombokVersion = '1.8.6'
}
// /sf/ask/2970929111/#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}"
}
Run Code Online (Sandbox Code Playgroud)

使用 Gradle 5.2+

  • 这在 Gradle 5.6 中仅适用于我,只有 `annotationProcessor "com.querydsl:querydsl-apt:4.2.2:jpa", "org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final" `。 (2认同)