引起:java.lang.ClassNotFoundException:com.querydsl.apt.jpa.JPAAnnotationProcessor

问题描述

我正在使用 gradle6+、openjdk11 和 querydsl 4.2.x 作为 springboot 项目, 面临如下问题

引起:java.lang.classNotFoundException:com.querydsl.apt.jpa.JPAAnnotationProcessor

在 gradle 脚本中,已添加

annotationProcessor 'com.querydsl:querydsl-apt:4.2.1:jpa'
    annotationProcessor "javax.annotation:javax.annotation-api:1.3.1"
    annotationProcessor 'org.springframework.boot:spring-boot-starter-data-jpa'
    compile("com.querydsl:querydsl-core:${project.querydsl}")
    compile("com.querydsl:querydsl-jpa:${project.querydsl}")

有人可以让我帮助解决问题吗?

解决方法

我在 gradle 构建文件中解决了并能够在没有这个 JPAProcessor 的情况下编译 QClasses。 看起来是最新版本,在编译 QClasses 时我们不需要这个 JPAProcessor。 只需将注释处理器作为依赖项就可以了。 Java 编译器能够创建 QClasses。 我刚用过

annotationProcessor("com.querydsl:querydsl-apt:4.2.1:jpa")
annotationProcessor group: 'org.springframework.boot',name: 'spring-boot-starter-data-jpa',version: project.springBoot
    annotationProcessor group: 'javax.annotation',name: 'javax.annotation-api',version: '1.3.2'
    annotationProcessor group: 'org.hibernate.javax.persistence',name: 'hibernate-jpa-2.1-api',version: '1.0.2.Final'