Java Gradle:无法生成QueryDSL类

Java Gradle:无法生成QueryDSL类,java,gradle,querydsl,gradlew,annotation-processor,Java,Gradle,Querydsl,Gradlew,Annotation Processor,渐变版本:5.1 Java版本:11 我在gradle文件中定义了以下任务以生成QueryDSL类: task generateQClasses (type: JavaCompile) { source = sourceSets.main.java.srcDirs classpath = sourceSets.main.compileClasspath destinationDir = file('src/main/java') options.annotatio

渐变版本:5.1

Java版本:11

我在
gradle
文件中定义了以下任务以生成
QueryDSL
类:

task generateQClasses (type: JavaCompile) {
    source = sourceSets.main.java.srcDirs
    classpath = sourceSets.main.compileClasspath
    destinationDir = file('src/main/java')
    options.annotationProcessorPath = configurations.annotationProcessor
    options.compilerArgs = ['-proc:only', '-processor', 'com.querydsl.apt.jpa.JPAAnnotationProcessor', '-Aquerydsl.packageSuffix=.querydsl']
}
下面是我的依赖项块:

annotationProcessor "com.querydsl:querydsl-apt:4.2.1:jpa"
annotationProcessor "org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final"
annotationProcessor "javax.annotation:javax.annotation-api:1.3.2"
如果执行'gradlew generateqclass',我会在日志中看到以下内容:

Attempt to recreate a file for type foo.bar.QClass
error: Attempt to recreate a file for type foo.bar.QClass
它失败,错误是文件已经存在。如何配置此任务以覆盖文件(如果存在)


此外,上面的配置是根项目的配置,它有5个子项目
AnnotationProcessor
能够覆盖其中一个子项目中的文件,但不能覆盖其他子项目中的文件(所有子项目都具有相同的配置)。我遗漏了什么吗?

您的目标是将生成的源代码移出构建文件夹,还是只在运行自定义任务(而不是普通编译任务的一部分)时生成源代码,还是两者兼而有之?只在有人显式执行该任务或编译代码时生成源代码。我不想将生成的源代码移出生成文件夹。您是说希望在运行
compileJava
以及
generateqclass
时生成它们吗?仅仅依靠前者,或者至少只依靠其中一个,不是更容易吗?抱歉,如果我有点过密:)我只将此任务作为一个单独的任务,因为与
compileJava
相比,它需要不同的
annotationProcessorPath
compilerArgs
值。参考:您的目标是将生成的源代码移出生成文件夹,或者只是在运行自定义任务(而不是普通编译任务的一部分)时生成它们,还是两者都要生成它们?只是在有人显式执行该任务或编译代码时生成它们。我不想将生成的源代码移出生成文件夹。您是说希望在运行
compileJava
以及
generateqclass
时生成它们吗?仅仅依靠前者,或者至少只依靠其中一个,不是更容易吗?抱歉,如果我有点过密:)我只将此任务作为一个单独的任务,因为与
compileJava
相比,它需要不同的
annotationProcessorPath
compilerArgs
值。供参考: