通常来说,您不应该使用QueryDSL插件。
为了配置QueryDSL生成,您只需要相关的querydsl模块,注释处理器和生成的源目录。例如,通过lombok集成,此配置应该可以工作(您可能需要使用所需的确切QueryDSL模块):
buildscript {
ext {
springBootVersion = '${springBootVersion}'
queryDslVersion = '4.2.2'
javaxVersion = '1.3.2'
}
}
plugins {
id 'idea'
}
idea {
module {
sourceDirs += file('generated/')
generatedSourceDirs += file('generated/')
}
}
dependencies {
// QueryDSL
compile "com.querydsl:querydsl-sql:${queryDslVersion}"
annotationProcessor("com.querydsl:querydsl-apt:${queryDslVersion}:general")
// Lombok
compileOnly "org.projectlombok:lombok:${lombokVersion}"
annotationProcessor "org.projectlombok:lombok:${lombokVersion}"
implementation("org.projectlombok:lombok:${lombokVersion}")
// Possibly annotation processors for additional Data annotations
annotationProcessor("javax.annotation:javax.annotation-api:${javaxVersion}")
/* TEST */
// Querydsl
testCompile "com.querydsl:querydsl-sql:${queryDslVersion}"
testAnnotationProcessor("com.querydsl:querydsl-apt:${queryDslVersion}:general")
// Lombok
testImplementation("org.projectlombok:lombok:${lombokVersion}")
testAnnotationProcessor("org.projectlombok:lombok:${lombokVersion}")
testCompileOnly("org.projectlombok:lombok:${lombokVersion}")
}
其他信息:https://github.com/querydsl/querydsl/issues/2444#issuecomment-489538997
,
我要花几个小时才能找到一个适用于 Kotlin 的解决方案,所以我想在这里留下这个答案(据我所知,这个问题没有Java限制,确实存在有关此的信息很少)。 Kotlin支持使用kapt plugin进行注释处理。为了将此插件用于QueryDSL,您需要1.定义kapt插件,并2.指定将进行处理的依赖项,在这种情况下为com.querydsl:querydsl-apt
。我在插件执行过程中使用了general
任务,但是根据documentation,还有其他可用选项(可能对JPA,JDO,Hiberante可能有一些额外的调整)
plugins {
kotlin("kapt") version "1.4.10"
}
dependencies {
implementation("com.querydsl:querydsl-mongodb:4.4.0")
kapt("com.querydsl:querydsl-apt:4.4.0:general")
}
现在,每当您运行gradle build
时,注释处理将触发使用@QueryEntity
注释的类的DSL查询类生成。如果有人需要Kotlin,我希望它能有所帮助。
,
这对我有用(请在依赖项中遵循完全相同的顺序)
sourceSets {
generated {
java {
srcDirs = ['build/generated/sources/annotationProcessor/java/main']
}
}
}
dependencies {
api 'com.querydsl:querydsl-jpa:4.4.0'
annotationProcessor 'org.projectlombok:lombok'
annotationProcessor('com.querydsl:querydsl-apt:4.4.0:jpa')
annotationProcessor('javax.annotation:javax.annotation-api')
}
本文链接:https://www.f2er.com/2698097.html