2

グラドルのバージョン: 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 generateQClasses を実行すると、ログに次のように表示されます。

Attempt to recreate a file for type foo.bar.QClass
error: Attempt to recreate a file for type foo.bar.QClass

ファイルが既に存在するというエラーで失敗します。ファイルが存在する場合、ファイルを上書きするようにこのタスクを構成するにはどうすればよいですか?

また、上記の構成はルート プロジェクトの構成であり、5 つのサブプロジェクトがあります。AnnotationProcessorサブプロジェクトの 1 つのファイルを上書きできますが、他のプロジェクトは上書きできません (すべてのサブプロジェクトの構成は同じです)。何か不足していますか?

4

1 に答える 1