gpt4 book ai didi

gradle - Gradle 5 QueryDsl生成重复的类

转载 作者:行者123 更新时间:2023-12-03 03:41:24 41 4
gpt4 key购买 nike

我正在使用queryDsl与Gradle生成Q类。它过去在Gradle 3.5上可以正常工作,但是在升级到Gradle 5.5.1时,它失败并出现重复的类错误。

我的generateQueryDsl任务可以很好地生成“gensrc /”下的类,但是在compileJava上,这些类是在“build / generated /”下再次生成的,最终会产生重复的类错误。

dependencies { 

api("org.springframework.boot:spring-boot-starter-data-jpa") {
exclude group: "org.hibernate", module: "hibernate-entitymanager"
exclude group: "org.hibernate", module: "hibernate-core"
exclude group: "org.apache.tomcat", module: "tomcat-jdbc"
}
api("com.zaxxer:HikariCP:${hikaricpVersion}")

api("com.h2database:h2:1.4.193")
api("mysql:mysql-connector-java")
api("com.microsoft.sqlserver:sqljdbc42:6.0.8112")
api("org.springframework.data:spring-data-jpa")
api("org.springframework:spring-jdbc")
api("org.springframework:spring-orm")
api("org.eclipse.persistence:javax.persistence:${eclipseLinkPersistenceVersion}")
api("org.eclipse.persistence:eclipselink:${eclipseLinkVersion}")
api("org.eclipse.persistence:org.eclipse.persistence.jpa:${eclipseLinkVersion}")

api("com.mysema.querydsl:querydsl-sql:${queryDslVersion}")
api("com.mysema.querydsl:querydsl-jpa:${queryDslVersion}")
api("com.mysema.querydsl:querydsl-apt:${queryDslVersion}")

annotationProcessor('com.mysema.querydsl:querydsl-apt:3.7.4:jpa')
annotationProcessor("org.springframework.boot:spring-boot-starter-data-jpa")

}

task generateQueryDSL(type: JavaCompile, group: 'build) {

source = sourceSets.main.java
classpath = configurations.compileClasspath
options.annotationProcessorPath = configurations.annotationProcessor
destinationDir = file('gensrc/main/java')

}

compileJava {
dependsOn generateQueryDSL
}

error: duplicate class: com.persistence.domain.model.QOrganizationBasedModel



and likewise for all generated classes

最佳答案

使用annotationProcessor配置时,默认的compileJava任务会将处理器添加到编译器中,它将在build/generated/sources/annotationProcessor/java/main中生成类。

在您的情况下,您还声明了一个附加的JavaCompile任务,该任务具有相同的注解处理器配置,然后将再次生成相同的类。

为了解决这个问题,我将完全删除generateQueryDSL任务,因为compileJava最有可能完成了您已经需要的一切。而且,如果您喜欢将生成的源文件放在其他文件夹中,则可以通过CompileOptions进行操作,但是在大多数情况下,我建议将它们放在build文件夹下。

关于gradle - Gradle 5 QueryDsl生成重复的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57391939/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com