如何在Gradle中简化QueryDSL注解处理器配置以指定生成类的@Generated注解
简化配置方案
你原配置的核心问题是同时启用了Gradle默认的compileJava注解处理流程,和自定义的generateQueryDSL任务,两个任务重复生成Q类导致覆盖冲突,完全不需要单独写自定义生成任务,直接在默认编译任务中添加注解处理器参数即可:
plugins { id 'java' // Spring Boot项目可额外引入以下两个插件,省略版本管理 id 'org.springframework.boot' version '2.5.6' id 'io.spring.dependency-management' version '1.0.11.RELEASE' } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa:2.5.6' implementation 'com.querydsl:querydsl-jpa:5.0.0' annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jpa" } compileJava { // 直接添加QueryDSL注解处理器参数即可 options.compilerArgs += [ '-Aquerydsl.generatedAnnotationClass=com.querydsl.core.annotations.Generated' ] }
配置说明
- 删除原配置里的
generateQueryDSL自定义任务和compileJava的finalizedBy绑定逻辑,避免重复执行生成逻辑 - 原依赖里的
annotationProcessor 'org.springframework.boot:spring-boot-starter-data-jpa:2.5.6'属于多余配置,可以直接移除 - 执行
./gradlew clean compileJava后即可在$buildDir/generated/sources/annotationProcessor/java/main目录下看到带指定@Generated注解的Q类
内容的提问来源于stack exchange,提问作者rios0rios0
相关产品推荐
相关产品推荐

